Two changes:

1. parseDate() now properly handles the final null: if an 'end'
timestamp is null, use the current date instead.

2. createTimes() now presorts the data before parsing (makes life
easier). Also properly pushes the final entry to the times array.
Removed spurious 'S'.
Added some code for dBUS queries.

Not active right now. Noticed a pretty big problem: the HTTP GET of
the device status data seems to have a maximum size, so if I try to
get more than ~2 days of dBUS data, it starts only sending back
part of the data. Maybe need to buffer the request? Or wait longer
for the request to finish? Not sure.