Log the generated SQL *before* the $dbh->prepare() call

The number of bind values and quote values may be important to the user
when debugging a failure in the prepare call. Also for this reason the
(IMHO-should-be-default) DBI attribute ShowErrorStatement is turned on.
More consistent xarray(s) and xhash(es) behaviour and testing
Implement the [ values => { ... } ] construct
Pass though ::_qv/::_bv arguments to ::_qv/::_bv constructors

If we attempt to create a quote value or a bind value object out of an
existing object of either of those classes, then pass the object
straigth through.
Restructure _ljoin() and its callers

This is necessary for beginning the work on nested ARRAY refs.
Remove a bunch of legacy cruft
Skip all Drop tests when no database handles are available
Initial quote identifier support

This will be used by the upcoming sql_func function.
Implemented sql_func() support
Rewrite ::_func as ::_expr and implement sql_case() on top
Implement some common sql functions (min, max, length etc)

These are now exported as anonymous functions and do not exist directly
in the DBIx::ThinSQL namespace.
Refactor _ljoin() as _expr->ejoin

It was returning the same struture as an expression object and was used
in a similar way, so this makes sense.
A couple of small cleanups...

Such as "use"ing modules in the right package. Tests don't even change
so in the end this has no impact other than correctness.
Commit a full .perltidyrc
Refactor: treat input as a stream of tokens, use objects less