Added continued restrictions

- Extracted ongoing restrictions into interfaces
- Fixed the case-when, it wouldn't work correctly the way it was unless used properly, but there was no way to check this well.
Made the RestrictionImpl less coupled
Remembering the restriction for cool tricks
Added tests
Removed the restriction provider interface

- Removed it because it no longer had a purpose,
  restrictions aren't pre-created externally anymore now.
Added missing headers
Merge pull request #5 from gert-wijns/ContinuedRestrictions

Continued restrictions