Major refactor of ReflectiveReader to do all reflection during initialize and minimize work during reading.
Fixed incorrect runtime reader type being written for EnumWriter<T>.
ContentTypeReaderManager now caches and reuses previously discovered ContentTypeReaders.
Merge pull request #2705 from SickheadGames/contentreader

ContentTypeReader Caching