Improve UC Browser detection
Instead of a plain object, use specific types for each kind with proper default values
Remove unneeded checks, because we now have default values
Move toJSON inline to the individual objects
Move toString inline to the individual objects
Cleanup
Cleanup
Make sure version comparison only uses as much details as each provides

27 == 27.1 and 27.0 != 27.1