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.
Merge pull request #60 from bundy845/master

Allows a class to have a reserved word as a column name.
fix parameter reference in anonymous function
Would occasionally generate exception "Invalid attempt to call MetaData when reader is closed"
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
Merge pull request #62 from paaschpa/master

Bug fix for "Invalid attempt to call MetaData when reader is closed"
Merge pull request #63 from seburgi/master

Added database schema support to Dapper.Rainbow
Merge pull request #61 from TheDavester/master

Fixed DapperTable issue
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.
Merge pull request #68 from tms/rainbow-extensibility

Updated Table methods to better support multi-DB
Merge pull request #66 from rayjezek/master

Rainbow: Ignore Id property when calling Table.Insert
http://code.google.com/p/dapper-dot-net/issues/detail?id=132 - EF change patches

@david.obando
Merge remote-tracking branch 'upstream/master'