Objectifying stats fields [#43].
Implemented a 'fieldFactory' to create stats fields objects, with an aim
to simplify and generally improve the code used in storing and fetching data
for return. Specifically fields have to toString method which will call
its respective format method to ensure all requests for data are
returned with the correct number of decimal places, thousands
separators, suffixes etc.

I've also updated the integrityCheck method to take advantage of this
refactor and have also included calls to nicer underscore.js
functionality.

Currently the commit should be safe to deploy as commands still return
data held in the old-style structures and new users continue to be
initialized in this fashion also.
Continued objectification of stats [#43].
Some simple functions such as ~lines and ~words are able to use the API
to access and return data from the now objectified stats fields. Fields
that require calculation such as wpl and lincent are also able to use
this functionality.

Overridable add and get methods on fields allow custom procedures for
adding and retreving data from particular fields.

Other functions and leaderboarders are either unresponsive or return
errors as they are yet to be converted.
Minor structure changes [#43]
Further work to #43.
It should be noted that we have discovered a significant flaw in the
initialisation of field objects, in that all new users (users who have
previously not been recorded by depressionbot in the currently active
instance) share the same data arrays causing hours of confusion.

This commit adds API functionality for fetching users on a given
server-channel combination, leaderboarding various metrics but does
however link a majority of commands to the new API interfaces.

~active has been disabled once again for the time being as I still
decide the best method to allow the API to support this data structure.
Fixed world ending bug [#43].
object Object [#41]]#43][#44][Close #38].
All commands except for the previously disabled ~active should now be back to
their full functionality. The API, commands and data structures have all been
moved outside of stats.js in to their new respective files as per #38 to take
advantage of the new DBO module loader.
Use correct get and add methods
Allow structures to be hot-reload
Stop self referencers trying to cheat ~popular [Fixes #47]
Merge pull request #54 from reality/patch-1

Allow structures to be hot-reload
Refactored API, deprecated old functionality [#41][Close #50]