Improvements for HLists (to be squashed)

- Refactoring of type lambdas into separate types
  based on https://github.com/slick/slick/pull/231.

- Remove :|: syntax

- Rename isDefined to nonEmpty

- Remove HList.size (in favor of productArity)