New SDK Structure and migration to block formatting

In order to make the SDK more readable/testable/extensible, we're shuffling some things around.
CHANGES: 
Migrating all the features to Managers. 
Confirming project file integrity.
Adding a test target for the framework.
Migrating from delegate to blocks for behavior in order to make the features more encapsulated in their respective managers.