TypeConverter.IsValid fix

TypeConverter.IsValid was always returning true for Int32 types, which was causing a crash in Nancy on Mono. This fix applies to the base class and changes the default so it:

* Checks if the value is null, if it is then return true
* Checks if the value is of a type we can convert from, if not, return false
* Actually tries the conversion and if an Exception is thrown, return false, otherwise return true

The try/catch probably isn't the most efficient way for some types, but it can be overridden and, most importantly, the default behavior should now match .net.