added support to escape sql identifiers

To keep the query compatible with other db engines, the identifiers
(columns, table names etc) should be escaped with the specific engine
rules. For ease of use, you can write the sql in a 'neutral' way marking
the identifiers you want escaped.
Example: select $id from $table -> select [id] from [table]

This feature is not automatically enabled (for performance reasons), you
need to call db.EscapeSql(sql)
Ex: db.Query<dynamic>(db.EscapeSql(sql),param1)