Fix Issue #156, #149 and #141

- Modularize annotation processing and make it easy to plug-in third party annotation processors
- Move EVCache annotation processing to its own module
- Added annotations for client properties

Looks like this does the trick:

```
testCompile project(':ribbon').sourceSets.test.output
```