I started fixing #1559 and decided to rework our `TypeConverter` infrastructure a bit.
This PR renames `AvaloniaDefaultTypeConverters` to `AvaloniaTypeConverters` and allow registration of 3rd party converters here.
`AvaloniaTypeConverters` improves upon the type converter functionality in the BCL by providing the followinng extra functionality:
- Allow registering non-constructed generic types (such as `AvaloniaList<>`) - `AvaloniaTypeConverters` will do the sensible thing and create an `AvaloniaListConverter<T>` with the correct type
- If no type converter is provided, look for a a static `Parse(string)` method which can be used to create an implicit type converter
This allows us to remove a bunch of `TypeConverter`s which just called the relevant `Parse` method.
Fixes#1559