Refactored BootChargingStationCommand to support attributes

Note: this is the first step in a series of refactorings which will lead to lower coupling between Motown and OCPP. For now, the assumption with which this command is refactored is that only the data required to build the logical model in the Motown domain application is set as a field in the command objects. All other information is added as a Map so applications which are built on top of the Motown domain application can use this as they wish.
Refactored BootChargingStationEvent to support attributes

Note: this is a step in a series of refactorings which will lead to lower coupling between Motown and OCPP. For now, the assumption with which this event is refactored is that only the data required to build the logical model in the Motown domain application is set as a field in the event objects. All other information is added as a Map so applications which are built on top of the Motown domain application can use this as they wish.
Added command and event to register charging stations
Added events for booting both registered and unregistered charging stations

- Added RegisteredChargingStationBootedEvent and UnregisteredChargingStationBootedEvent which extend ChargingStationBootedEvent.
- Made ChargingStationBootedEvent abstract to force the use of either the registered or unregistered type.
- RegisteredChargingStationBootedEvent is now the default in ChargingStation (and unit tests) until the registration logic is implemented.