Using a basic cache for Device objects
Using a basic cache for Device objects

`this.devices` is now an Object and Devices are stored as values in it
with their id as the key. Spark.getDevice will now use and update the
cache

spark/sparkjs,4math2379/sparkjs,jkaramon/sparkjs,gbicks/sparkjs,gbicks/particle