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; }

---
Ps. I could have bundled some comparisons in a more complex RegEx, and decided not to for performance reasons (optimistic)