Fix TypeParse detection for decimal type

The `TypeParse` detection used in `Utility.FlattenWorker()` threw a `System.Reflection.AmbiguousMatchException` when being run on a decimal property inside a custom class used in `DataTable.New.FromEnumerable()`. This was happening because there are two `TryParse` overloads for this data type.

Modified the logic for this check to allow it to verify that any public and static `TryParse` function exists for the given type.

Added unit test to verify that this is working for `DataTable.New.FromEnumerable()` with a class that has a decimal property, related to #17.