Customise the NLOHMANN_JSON_SERIALIZE_ENUM macro in LauJsonTools
Throws an exception in case of encountering an unknown or invalid
enumeration state - behaviour of macro in nlohmann_json header is to
silently default to the first state, which can lead to unexpected
behaviour.
Also extended the macro to create an output streaming operator.
Consequently, removed all existing such operators for enum types.