Updated Table methods to better support multi-DB

No sense in escaping TableName only for update, "from" isn't universally
optional for deletes, First() should be virtual to allow alternatives to
TOP 1
Support for reserved words as columns

Insert failed when a word such as order was used as a column name.
Added [] around the column name.

Also modified the test for InsertGetUpdate().  The first Get is now a
User instead of IUser.  There is some bug where using the interface
twice first on a null result and then on the real result causes the
reader to not be open when trying to map the type.
Added database schema support to Dapper.Rainbow
Added possibility to add custom type maps - enables serialization of enums to DbType.String instead of DbType.Int32
Removed Id parameter when calling Table.Insert

"Id" is being removed most places in Rainbow, but not on Table.Insert. I
changed this to make it consistent with SqlCompactTable.Insert and
Table.Update.