Protocol injection mapping

Map protocol conforming classes to the protocol, so you can have a super clean separation between your protocol-based API and the different implementations for it.

+ [x] Add protocol based mapping features.
+ [x] Generate dynamic accessors for protocol based properties.

---------------------
*The good news:*
Test coverage is now at `80.2 %`... [Mr. Reid might be proud](https://github.com/jonreid/XcodeCoverage)

*The bad news:*
The API changed completely... [Mr. Reid would not be proud](http://qualitycoding.org/dot-notation/)