Fixed various ReSharper errors and warnings

Fixed various things like making fields read only and using implictly
typed variables.
Marked lots of properties as [UsedImplicitly]

To prevent ReSharper complaining about properties which are called
reflectively and classes which are used by Windsor or NHibernate, I've
added the [UsedImplicitly] attribute to a lot of them.
Added ReSharper's code annotations