Support presence detection and notification

Description

Support detection of devices that have not interacted with the system within a given time interval. This can be important for alerting when devices lose communication or fail. SiteWhere already supports keeping state at the assignment level when devices send events into the system. Only device events that are set to update assignment state will be taken into consideration with presence detection. A new API method will be added to find all devices that have a last activity date outside of a given range. A new "presence monitor" component will be added and configured to query at a given time interval and find devices that are not present. The presence monitor can then fire events to interested parties over MQTT or other transports so they can react to the condition.