Move Autism POI from geoserver to GeoDjango. Committed settins (sans passwords)

We mentioned this during the awards night, but it seems much easier to
serve all of the geo data through Django rather than geoserver. Less
moving parts, less points of failure, and generally easier to setup
and develop for.

In the future, LGA's will also be ported.

Finally, I've committed settings.py. The secret stuff (passwords etc)
should be placed in an adjacent file (called local_settings.py) which
is ignored by git. I've put a template/example local_settings in git
though.
Serve LGA geometry from django. Removed need for geoserver completely.

This was the final change required for the geoserver dependency to
be removed.

The view now also only requests data for the current part of the map
it is viewing (rather than all of Australia). It also specifies a
simplification level to return less simple geometry when zoomed out.

There were some troubles with performance in terms of:
 * Querying data from PostGIS (fast)
 * Using vectorformats to serialize to geoJSON, which requires:
   - Reading from PostGIS into internal django representations (slow)
   - Serializing that internal representation (fast enough)

In order to address this issue, this commit does a few things with cachecs:
 * Asks the browser to cache the result (with varying success
   between browsers - mostly because they seem to treat cache
   requests for JSON data loaded through AJAX differently from
   pages loaded over regular requests).
 * Use the DJango cache to cache results of the view which
   returns geometry (much more succesful, because the slow
   converting to JSON explained above is only done once).

For the caching to work, it is important to ensure that the requests
to the server for geometry (of a certain region, depending on the map
view) are not all completely different. Otherwise, caching would be
of no use. To achieve this, each time geometry is requested, it adds
a bit of padding to make the requested bounding box large. Then, it
rounds it off to an evenish number. That way, e.g. both 5.8 and 5.763
will result in the same request (e.g. "6.0").

Finally, the LGA shape files needed to be processed to remove features
with no geometry, as they make geodjango fall over. See prepare.sh
for details.
Support for restricting herri installation to specific state.

The local_settings.py file can now have a RESTRICT_TO_STATE value,
which is an integer that corresponds to the state_code from the
LGA shape file. This has the effect of:
 * Restricting the map view to the state (only supports Vic right now)
 * Only fetching geometry for the given state
Proper quantiles + normalisation to population.

Additionally,

 * Saving models now respects RESTRICT_TO_STATE setting
 * Quantiles are saved against AttributeModel django model
 * JSON data used by JavaScript is no longer loaded over AJAX
 * Completely removed need for geoserver database

The JSON data was originally loaded over ajax because the client was
not being developed as part of the django app. In the context of the
hackathon, it made it easier to get stuff built. However, now that it
is being served as a django template, we can dump the data in the
template and thus avoid another round trip to the server. This is the
case with:
 * AttributeModel details
 * AttributeModel results (e.g. values for colourising the regions)
 * Attributes (in the new model view)
Changed colours to red, and exaggerate top three quantiles.

Fred mentioned that at present, we don't particularly care about
the people in the lower quantiles. By definition, they are less
interesting to us. Therefore we colour both the lowest quantiles
the same to make them fade into the background a bit.

In addition, the colours were changed to green, because often the
index will be modelling some group of either vulnerable people
or those requiring a service which don't have it. Green was a
very happy-go-lucky-colour for this job.

I kept the green colours in JavaScript to make it easy to swap back
though. Maybe it can be made into a django setting later (MAP_COLOUR)
Toggle autism support groups. Show details of group on click.

Right now this is hard coded to autism related POIs. Will need to
change when we support custom POIs.
Option to highlight the 5 highest scoring LGA's on the map.

The idea is that people look at the map for one reason - to find the
places with the highest scores on the index model. As they will not
neccesarily be able to distinguish between the LGA's in the highest,
quantile, this feature allows them to quickly jump their attention
to the relevant area.
More work on readme setup instructions.
Added labels to regions.

The labels are added for every region, and then culled back depending on
whether they overlap with other layers. Hence, the regions earlier in
the returned geoJSON will get priority. We can probably tweak this
algorithm later, as well as the symbology for labels, but for now it
gets the job done.
Refactored javascript into separate file.

Was getting a little silly having all of the JS in the one model.html
file, so I've made some classes inside herri-map.js. These could do
with some further refactoring, e.g. the logic to do with managing
successive requests for geometry, and padding the bounds of such
requests could move out, but didn't have the will or time now.

Note how we can expose publicly methods and variables by assining them
to "self.blah" instead of "var blah". The "var blah" variables/methods are
effectively private to the class which declared them. This is one popular
way to mimic OO visibility princibles (e.g. public vs private) in JS.
Setting for mapbox basemaps.

If you change local_settings.py and add a mapbox id in the setting
"MAPBOX_BASEMAP", then it will use that map for the basemap.
For example, "MAPBOX_BASEMAP = 'blah.2f03j'" - or whatever the format
for a mapbox account/map is. For testing I used mapbox id's from the
leaflet website, but don't want to commit them to our repository.
Removed voting link from README.

Govhack voting is complete, time to make this ship sail on its own,
with govhack no longer being the primary motivator.