Fix code gen type mapping to match JDBC 4.1 spec

This fixes the mapping from REAL to Float, and from FLOAT to Double (following the JDBC spec). It also brings the mapping code visually closer to the JDBC spec document.
Make code generated GetResults take requirements implicitly

Before auto generated GetResult methods for tables were disabled when a type was used that Slick didn’t know to map by itself. Now the required GetResult mappers are taken implicitly allowing users to provide them and also replace Slick’s built-in ones.
Add auto-generated option mapping (.?) for Table classes for easier outer joins.

This serves as a temporary solution until we have proper option mapping in Slick. We could alternatively publish it as a Code generator customization recipe instead of merging it into Slick master, but it seems very generally useful.
Minor code gen api improvements
Expose table as a member of sub generator for easier use. Rename StringExtensionMethods to StringExtensions