Toying with moving to MEF for some parts of the initialization process

Seems to work OK but it doesn't really stop the ReflectionTypeLoad
errors and may make registration of the types a bit more difficult. But
it does potentially cut down on some of the code...