Guards

Cleaning for guards (note: I'll update test once the other PR is merged).

* Remove unused interface.
* Start to move factories to a "Factory" namespace, otherwise if we keep eveyrthing in Service, Factories are mixed up with real services.
* AbstractGuard no longer extends from AbstractOptions because they are not options classes. The rules and authorization service are injected inside the guards.
* Set dependency to ZF 2.2 as it provides lot of traits that help reduce code (if this is a problem I can revert it back, but as we'll likely have a dependency to DoctirneModule 1.0 which provides A LOT of nice things to work more easily with both ODM and ORM, and that DoctrineModule 1.0 has dependency to 2.2, let's start to use it now ;-)).

One question for you Spiffy: I don't understand guard. You are talking about "permissions", but in all your examples, you map a route to a role. Is this expected?