Ported old performance branch

Now has an extra option for compiling an expression for object
construction, rather than just executing the constructor using reflection.

This is approximately 10x faster when the option is available.
Switched SafeDictionary to ReaderWriterLockSlim
Tweaked GetBestConstructor
Switch AR to use IsAssignableFrom (much faster)