Added rules and roles

This pull adds rules and roles functionality. To explain this, we can look at the `RulesVehicle` test. Here only a `thief` is allowed to hardwire the car. And only the `driver` is allowed to start it, so long as he has the key.