Update Rooms structure to use NSMutableDictionary instead of NSArray.
Added devicesDictionary and support for persisting objects on refreshDevices (instead of creating new objects every time). This allows UI to point to a device reference which keeps valid over time.
- Switched ZWaveNode and subclasses to use updateWithDictionary instead of initWithDictionary.  This allows you to update devices without having to recreate them.
- Updated start/stop heartbeat so that they are resilient to multiple calls.
- Updated refreshDevices to use a roomsDictionary and deviceDictionary to persist objects that might be mapped in the UX, rather than destroy/recreate them.