A JS port of Browserscope's user agent parser.