Internal device manager now removes devices from cache when deregistered
Added helper methods for unregistering

Also made init and destroy abstract
Device will unregister on shutdown
Fixes incorrect logic when creating jobs without cron expression