Added validation of request to the PostAsync<T> method.

Made the XmlRequestBase implement IValidatableObject as an abstract, and added implementations to the derived classes.

Some refactoring and stuff, mostly concerning the unit tests.
Implemented IDisposable for the CommunicationsManager.
Some refactoring.
New tests.
ReSharper disable InconsistentNaming.
Cleanup.