Break a UA string into browser, engine, OS and device
Parsing uses the ua-parser-js rule set. A UA string is self-declared by the client and can be spoofed, so never treat it as trustworthy.