(FACT-624) Add structured uptime fact

This commit adds a new 'system_uptime' fact, which returns a map including
keys for seconds, hours, days and a human readable uptime.

Also, the existing uptime facts were updated to take their values from this new 
structured fact, rather than resolving them individually.
The spacing here doesn't seem to match the existing source (I'm surprised cpplint isn't enforcing 4 spaces, but that is what we generally use in C++).