[WIP] Fix Rbac consistency

This is scheduled for 2.3

- [ ] Deprecate parent relationship (we should have only children relationship).
- [ ] Make `IsGranted()` returns `false` when assertion is `true` but the role doesn't have the needed permission.
- [ ] Disallow multiple roles with the same name.
- [ ] Deprecate role instantiation in `AbstractRole`.
- [ ] Move `hasPermission()` logic from `AbstractRole` to `Rbac`
- [ ] Move assertion logic to a specific method.
- [x] Make a role can have multiple children.
- [x] Deprecate `createMissingRoles`.
- [x] Add `RoleNotFoundException` to replace `InvalidArgumentException` in `Rbac::getRole()`.
- [x] Use properly PHPUnit assertions in tests.
- [ ] Update docs

Note that **ZfcRbac** need to be updated before this merge.

Ping @spiffyjr