cache parsed DeviceDetector instances for bulk requests

By caching parsed DeviceDetectors, we reduce the number of regexes to process.
It allows to process more requests per second when the same user agent is met.
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).
Merge pull request #304 from cbonte/DeviceDetector2-Cache

Device detector2 cache