Move Vagrantfile to top level of repository.

This makes it easier to set up, as you can do:
$ git clone --recursive https://github.com/mysociety/fixmystreet
$ cd fixmystreet
$ vagrant up --no-color
[Bromley] disambiguation for White Horse Hill

This street is on boundary of Bromley with Greenwich, so a simple
disambiguation of $town = "chislehurst" falls foul of UKCouncils->
area_check.

It may be worth overriding area_check in general, but in mean time,
setting a specific postcode (on the Bromley side of the administrative
boundary) allows the map to be seen.
Open311 Endpoint

Subsystems include

 * ::Spark encoding conventions for xml/json
 * ::Schema using Rx to validate form of inputs and outputs,
      including validation for, e.g., dates and CSV as part of Open311

Handles following paths:

 * Open311 attributes for Service Definition
   http://wiki.open311.org/GeoReport_v2#GET_Service_Definition
 * POST service request
 * GET Service Requests
 * GET Service Request

Objects:

 * ::Service
 * ::Service::Request
Open311 Endpoint mySociety extensions role

 * Get Service Request Updates

This requires a new object ::Service::Request::Update, which of course
is not part of standard spec.  So, in order to make the core not too
contaminated by :

 * the endpoint should instantiate ::Service::Request::mySociety objects
 which know about updates
 * have added a learn_additional_types callback from Schema to Endpoint,
 so that core doesn't need to know about /open311/service_request_update
 * (but ::Spark knows about the exception for updates... meh, but is 1-line)
Role for accepting default config file

See also MooX::ConfigFromFile, but that's underdocumented and
seems overengineered -- may be worth implementing if requirements
become more complex however.  (See also Config::Any, which is
well worth doing in future, using YAML only reflects current
usage in FMS though.)
Open311 Warwick (Exor) Integration

 ::Integration::Warwick subclasses ::Integration::Exor
 refactor request_class and new_request
 Exor service
 Warwickshire updates retrieval, with datetimes
 stubbing out of Oracle constants, for local testing
Open311 Hide system fields from FMS

Bromley/Warwickshire send metadata in their services/FOO.xml
advising that you can pass, e.g. attributes[easting].

FMS by default shows all of these to the user to fill in, however
we don't *want* the user to supply these, rather they are added
by the cobrand.

Bromley had an exception for this (keyed by $body->areas->id).
We write this more generally for Warwickshire too, keying instead
by $body->name (as this is far less likely to be overridden for
installs using global or custom Mapit's)
Open311. Remove extraneous 'jurisdiction' parameter

This parameter was added in 3eb93cea4acd5f9b76efdc0910466363a0b9b445
and is superfluous (as jurisdiction*_id* is the correct parameter,
and is already sent.)  That commit mentions only api_key so understand
this wrong parameter is an artefact.
Open311 tweaks to get  round-tripping working

If https://github.com/mysociety/fixmystreet/pull/792 is accepted
then this should be rewritten in terms of that.
FMS <-> Open311 Endpoint End to end tests

Uses LWP::Protocol::PSGI to avoid having to spawn external processes
in order to test these end to end.
Open311 Endpoint: fix tests
Remove unused import
Tweak, onsite
Merge branch 'open311-endpoint-candidate' into commercial-staging