A tiny user agent parser.