Added comments and changed StatesMap class.

StatesMap class is now named DeviceStates to enable injecting a Map or a
List object, but using only a single annotation.