Added caching to speed up response times
The multicast to discover devices can take a couple of seconds to run, as the devices on the network are not likely to change very often, it makes sense to cache the results of this search
Previously we did this but only in memory, so each new program would have to run the discover again, now by setting the $cache property to true the results of the discover will be cached to disk for future use