Simplify Invokers

- Remove parameterized Invokers. They hugely complicate the API
  (overloads for UnitInvoker; some UnitInvoker methods require
  parens, others forbid them) and the implementation.

- The Lifted Embedding did not expose parameterized Invokers anymore
  since 2.0. With this change, the distinction between QueryInvoker,
  UnitQueryInvoker and MutatingUnitInvoker (for applied compiled
  queries) goes away.

- Adapt StaticQuery to the new model. The API stays mostly compatible.
  StaticQuery is now only a builder for the query, the actual execution
  is done by a new StaticQueryInvoker. Parameterized StaticQuery objects
  have to be applied first to get the Invoker. For compatibility with
  the old API, there is an implicit conversion for StaticQueries with
  Unit parameters.
Simplify Option handling in JdbcProfile.

- Remove the useless TypeInfo abstraction in BasicProfile. It is not
  needed at this level. Sub-profiles should have more flexibility for
  implementing types.

- Represent only base types with JdbcType, not Option types. JDBC is
  based on optionally nullable base types. Making this more explicit in
  the handling of Option columns should simplify the implementation of
  more efficient "fast path" mapping converters in the future.

- JdbcType.nullable is no longer needed.