introduce devicedetector factory to get singleton instances of devicedetector based on the given user agent. That provides the possibility to reuse DeviceDetector for bot and visitor data detection.