Use its own static array to store DeviceDetector instances

The previous commit had at least 2 issues :

one identified by sgiehl, who reported that the static variable was useless
if we always create a new cache instance, and indeed, he's absolutely right !

Another one can be classified as a potential security issue, where a request
can forge a user agent as a key to an object which is not meant to be accessed
(CacheStatic instances share their data).