Update - Support for 16 mappings.

Addition from contributor Rik Vanmechelen for mapping up to 16 types.
Have reverted the GetCommand() constructor replacing the
'Dictionary<string, object>' with the original 'dynamic parameters'. The
purpose of passing a 'dynamic parameters' parameter is to allow you to
write inline parameter values as an anonymous type, e.g. 'new { id =
'value', firstname = 'value'... } etc. I can look at adding support for
a dictionary of string/objects.