Interface and base implementations for EnumData and EnumDataStore.

Also included a Registry to be used by Application
Just take a look at Aiport.java or Airline.java as example (under assistant/enum_data branch). The enum implements the EnumDataProvider so each instance can return the corresponding ENumData. AIrport can provide an AirportData, Airline can provide an AirlineData.

The reason we need the interface is so that the Enum can actually implement it and we can use things in a generic way. Otherwise there is no way to treat the various Enums in the AbstractEnumDataStore