Add some fall-back guesses when mapping between datareader and object to better support legacy databases

This is very useful when querying legacy databases that cannot be changed (views, stored procedures, ...)
that contains fields with underscores and/or special characters and/or prefixes that either wouldn't be
possible to be declared in C#, or wouldn't comply with standard naming conventions

Examples of mappings that are now possible with this change:
[Database]       [C#]
customer_id   => public int CustomerId { get; set; }
quantity_%    => public decimal Quantity { get; set; }
t040_name     => public string Name { get; set; }
Merge pull request #291 from CaioProiete/improve-mappings-for-legacy-databases

Add some fall-back guesses when mapping between datareader and object to better support legacy databases