Background process to compute client-specific result scores

This has the following main components:
- A new method for the plugin architecture "runBackgroundTasks"
- Implementations of the new method for the clients we have so far - gamified,
  carshare, and testclient
- A new top level script that invokes the background tasks to precompute results for all users
- A default implementation for users who are not part of a client

This allows us to replace the carbon footprint calculation in the default data
view with a precomputed result as well.

Couple of other things to note:
- I also moved the client count from User to userclient since it deals with both user and client
    - Updated unit tests to handle this
- Added a new unit test for the background invocation
- Documented the design decision for future reference