Add SQL::Function#over for easier creation of window functions

I think this is a much friendly API than the current virtual row
based usage with :over.
Add SQL::Function#distinct for easier creation of aggregate functions using DISTINCT

This should also be easier than the current :distinct option in
virtual row blocks.
Add #function to SQL::Identifier and SQL::QualifiedIdentifier, allowing for easy use of schema qualified functions or functions names that need quoting

For historical reasons, Sequel has not split symbols in function
names, and for backwards compatibility it can't.  Previously you
couldn't use SQL::Identifier or SQL::QualifiedIdentifier as
function names, so this is a backwards compatible way to support
schema qualified functions.  Previous schema qualified functions
required:

  Sequel.function('schema.function', ...)

Sequel has never quoted function names, which means function names
that required quoting required manual quoting:

  Sequel.function('"function name"', ...)

These new methods integrate nicely with Sequel's virtual row blocks
and Sequel.expr:

  DB.get{schema__function.function(...)}
  Sequel.expr(:"function name").function(...)
Make #* method without arguments on SQL::Function return a Function with * prepended to the arguments

This is the last piece to replace the empty blocks used in virtual row
block method calls.  Previously, there were four things the empty blocks
did, and now they all have simple replacements:

* func{} => func.function
* func(:*){} => func.function.*
* func(:distinct, 1){} => func(1).distinct
* func(:over, :args=>1){} => func(1).over

While I won't be removing the empty block usage any time soon (definitely
not before Sequel 5, and probably never), all users are encouraged to use
the new syntax in new code, as it should be simpler to understand.
Don't quote function names by default on most adapters

PostgreSQL, SQLite, and H2 support quoted function names, but
MySQL, MSSQL, HSQLDB, and Derby do not.  Since Sequel didn't
quote function names in the symbol case, it's safer not to
quote them by default except in the case where it is known
to be supported.