UA regex can use some testing, add a parse function!

In response to #2539, the user agent strings should be better/easily tested.

A `parse` function replaces the Browser object creation. It returns an object that contains the basic properties of the `Browser`. It consumes a user agent string and platform.

The `parse` function is then exposed on the Browser object to help along testing.