Changes to Spreadsheet::Edit, Spreadsheet::Edit::IO, and/or Spreadsheet::Edit::Log

1001.003 : Diagnose empty input path (rather than crashing).
           Add btwpad().  Default NO_COLOR to ! -t (logdest).
1001.003 : Fix test to not fail on platforms without working 'tput'
1001.002 : Fix title_rx auto-detect oops when cleaned title matches a raw
           title in another column.
           Allow per-call override of verbose/debug/silent more often.
           btwbt: More compact mini-backtrace; simplified colorize impl.
           Add (undocumented) &btwN_str which returns the string.
           log_call: Show empty list result as () instead of nothing.
           Update shared test library.
1001.001 : btwbt mini-tracebacks now show outer-most frame first.
           *Removed* support for user-specified btw prefix strings
           (lots of complexity for mostly-imaginary real benefits).
           *Removed* :color/:nocolor import tag support. Use $ENV{NO_COLOR} instead.
1000.030 : Remove LO-search debug messages from t/00_compile.t
           Test colorized btw* messages and expose colorize() function.
1000.029 : Avoid showing any internal frames in tracebacks involving apply* etc.
           Disallow "a" and "b" as tied variable names (to avoid clashing with Perl)
           Fix bugs finding libreoffice executable when following symlinks
           or if some filesystems are unreadable.
1000.028 : Colorize btw and oops messages (import :nocolor to disable)
1000.027 : Add OPTION subname_override to log_call and friends.
           Initial support for csv -> txt (fixed-width-fields); not fully working yet.
           Removed undocumented tie_col_variables :safe option.
           Doc tweaks.
1000.026 : Require Path::Tiny 0.146; fix Preload glitch with title_rx
1000.025 : Require Data::Dumper::Interp 7.012 to get portability fixes
1000.023 : Yet more debug code to diagnose Windows smoker failures...
1000.022 : Small changes, hunting for Windows smoker failures.
1000.021 : Allow completely-redundant alias definitions; Added btw* test cases.
1000.020 : Fix bug with BOM+empty files.
1000.019 : Fix leading-zero .csv corruption bug which came back in 1000.018
           Fix BOM-related test issues on Windows.
1000.018 : Support reading csv files with a BOM
1000.016 : Avoid warnings about !$foo ne $bar with perl v5.41.5
1000.016 : Allow {data_source} as option to read_spreadsheet()
1000.015 : Add sort_indicies() method.   Remove unused t/LpodhTestUtils.pm
           Add btwN, btwbt added to Spreadsheet::Edit::Log
1000.014 : Revised algo used to search for an OO/LL installation
1000.013 : Require Data::Dumper::Interp 7.003 (to fix API change issue)
1000.012 : Put back first/last_data_rx (reverts removal in 1000.009).
           sort_rows() needs them to be useful in multi-section sheets.
1000.011 : Tester fixes for Windows
1000.010 : Misc. fixes; Enhanced btwN with mini-backtrace etc.
1000.009 : Remove first/last_data_rx. Detect title clashes in insert_cols
1000.008 : Fix AUTHOR_TESTING test plan glitch
1000.007 : Elide internal frames in backtraces in apply handlers (exc. w debug)
           Fix bug where $@ and $_ were clobbered by btw() and btwN().
           Spreadsheet::Edit::Log ':btw=PREFIX' now generates both btw & btwN.
1000.006 : Add openlibreoffice_path() and friends to Spreadsheet::Edit::IO
1000.004 : Add Spreadsheet::Edit::Log :btw=PFX and :btwN=PFX import tags
1000.003 : Handle symlink issues on Windows
1000.002 : Data::Dumper::Interp 6.002; test libs; white space fixes.
1000.001 : Bumped the version to be > 999.999 to fix a $VERSION problem
  (see https://www.perlmonks.org/?node_id=11153160)
3.031 : Fix date format auto-detection when importing CSV
3.015->3.030 : Fixed various portability issues, particularly for Windows

3.014 : IO::convert_spreadsheet() reworked:

        Auto-detect CSV import column formats when possible to avoid
        corruption when converted to a spreadsheet.  Mainly this is to
        specify "text" format for things which would be spoiled if read
        as a number e.g. zip codes with leading zeroes.
        Also detects MM/DD/YY vs DD/MM/YY when the DD happens to be > 12.

        Import formats may be provided explicitly with option
           col_formats => [...]
        The value is a list of codes for columns: "text",
        "MM/DD/YY", "DD/MM/YY", or undef/empty for Standard
        (e.g. generic number), or equivalent OO/LO Format Code numbers
        See https://wiki.documentfoundation.org/Documentation/DevGuide/Spreadsheet_Documents#Filter_Options_for_the_CSV_Filter

        Now csv->ods->csv round trip is usually completely clean.

3.010 : Clean up auto-detect of encoding and quote & separator characters
        in csv files.   It first tries the obvious: UTF-8, '"' and ",", but
        should now work automatically with \t separators.

        Override with
          input_encoding => "UTF-8",  # for example
          quote_char     => '"',
          sep_char       => ','
        ----
        Support CSV transcoding e.g.
          convert_spreadsheet( inpath => "file_in_utf16.csv",
                               cvt_to => "csv",
                               output_encoding => "UTF-8" )

        will auto-detect the input encoding (using BOM if present)
        and transcode to a UTF-8 outpath.
        ---
        Separate and generalize the logging functions into
        Spreadsheet::Edit::Log .
        ---
3.009 : Switch tests from Test::More to Test2::V0
