keysplit returns only a hash now, change logic
Merge branch 'master' into js_improvements
Rectify issues with nanobar

The duplicate nanobar issue occurs when two functions invoke 'go(100)'
at the same time, which was the case when updating via `updateProgress`
and `doneProgress()`. Have consolidate logic to update progress on
rickshaw-based graphs when it's known to not be complete.

Also added nanobar functionality to horizon by adding optional callback
function parameter to the machiavelli source metric. Also implemented
the functionality to have updates even when a counter isn't invoked by
the graph type. This might get messy later, but for now it assumes that
gon.metrics.length exists and that the update will only be invoked once
per graph update.

Also added logic that surpresses updates when the percentage is over
100%, which occurs during autoplaying of data on horizon charts (no way
to invoke on first call only)