refactoring and more warnings from TypeCatalogue

Some opinionated refactorings and I've also added warnings when loading badly formatted assemblies (which includes non-managed assemblies) and when failing to load all types from loaded assemblies.

Each commit is quite clear in it's purpose so can be reviewed separately. All open to discussion.