A useable relational profile

This PR adds a new RelationalProfile between BasicProfile and SqlProfile which provides common functionality for relational databases without the need for any textual query language. This profile will be the first target for the new in-memory driver.

A lot of the basic functionality is also available in BasicProfile now. You shouldn't have to add much more than the encoding for column types and some form of table definitions in to get started with a non-relational driver.

Review by @bwmcadams (this is closely related to the work on defining common functionality for NoSQL data stores)