Refactored Code & Extracted Types

Refactored a lot of the code
Removed a lot of redundant code
Changed a lot of explicit types to vars
Optimized and removed unused using

Began renaming some variables and classes to use the [MSDN C# guidelines](http://msdn.microsoft.com/en-us/library/ms229002(v=vs.110).aspx).

**TODO: ** finish entire migration to proper naming.
* Types and namespaces: **UpperCamelCase**,
* Interfaces: **IUpperCamelCase**,
* Public methods, properties, fields, events: **UpperCamelCase**,
* Private/protected methods, properties, fields: **lowerCamelCase** (no damn prefixes),
* Static readonly/const fields: **ALL_UPPER**.