New feature: Permission to assertion map, Assertion Plugin Manager

As discussed in #155

ping @bakura10 @danizord

- [x] Initial proposal
- [x] Assertion plugin manager
- [x] Assertion map
- [x] Assertion unit tests
- [x] Test exception when context is given but no assertion is found (@bakura10 please elaborate if this is neccessary)
- [x] Tests for ModuleOptions
- [x] Pass all tests
- [x] Fix cs issues
- [x] Test AssertionPluginFactory
- [x] setAssertion, setAssertions, hasAssertion