Several preparatory changes and cleanups to switching to the day by day score calculation

- Make the score component calculation accept an input range so that we can
  predict the scores for existing users
- Converted the components to relative values (ratios) to make it more fair
- Define a calcScore function that combines the components into a single score
- Comment out an extraneous debug statement
- Optimize getFootprintCompare to reduce the number of queries to the database.
  We were calculating various distances for every single footprint calculation scheme
- Make the classifiedRatio work for a range as well
- Updated the test cases to work with the percentage values, and the range based pctClassification
Define a "score" field in the user profile to maintain a stateful score that can be updated

Define the function to update it in gamified, and add a test case for it as
well. Note that the score field should really be refactored out from the user
profile since it applies only to the gamification client. The refactoring is
deferred until a bit later, when we have a better idea of what the use cases
are...
Fix stupid bug in the client creation script

bool(String) doesn't actually convert a string to a boolean.
So we were creating a new ID even if the user typed in "False".
Fixed with a simple boolean check instead.
Created the new result screen

- It uses the d3 bullet graph type to display:
    - the current score
    - the previous score
    - the three levels

- It was pretty challenging to get this to work vertically.
  In the end, I used the example here:
    http://www.jasondavies.com/bullet/

- I also had to spend a bunch of time getting the log scale to work - in
  particular, the default bullet.js used value - scale(0) to determine the
  length of the bar, which doesn't work with the log scale. I need to send a pull
  request for that.

- bullet.js also contains a hardcoded log scale currently, although I am pretty
  sure I know how to change it. But the higher priority is to hook everything
  else up with the correct values
Couple of small fixes to the rest of the code

- add support for static files served up from the client subdirectory to
  support client specific javascript
- scale up the values by 10 to allow people to see their progress more quickly
- ensure that the score is never negative
- remove the unused variables from the template
Hook up the gamified UI to real data

- Print the axis ticks using 100k notation instead of 100000 to make it more
  readable, and shorter to boot
- Adjust the margins so that the score bar is not right in the middle of the picture
- Changed the user module to store both the current score and the previous score
- Changed the gamification module to hook up both scores and the image file name into the template
- Changed existing test cases and added a new test case
Fix some minor formatting issues

- Check in d3 to allow us to work locally
- Change the margins so that they work properly
- Change the result template to change the ticks to lightgreen to match the text
Change the images to be in portrait mode instead of landscape

So that they can be displayed correctly on the phone