improve veterans query performance

* add index on caffeine_users.date_joined
* replace query with DISTINCT with an EXISTS sub select
add 30 day total and average top 10, resolves #31

* caffeine.models.CaffeineManager:
  - add optional interval to top_consumers_total
  - add optional interval to top_consumers_average
* caffeine.tests.test_models
  - add test_top_consumers_total_limited and test_top_consumers_average_limited
  - use deterministic data for both tests
* caffeine.views:
  - add topcoffeerecent, topcoffeeavgrecent, topmaterecent and topmateavgrecent
    to template context
* templates/explore.html:
  - render two new boxes with 30 day totals and average