[MAJOR] Refactored the way detected states are registered and reported.
[TODO] Browser and underlying engine detection, and also refactor detect_device_type to remove recombine
Refactored the way detection and reporting is handled

This new system duplicates an object dictionary that functions as
holding a key-value pair where the value, for a given key, is what is
'reported' via the associated class names on the html dom element.