Get stderr when running clamdscan

Previously, when clamdscan's had an error we haven't had any information about what went wrong. This should address that.
Merge pull request #318 from alphagov/get-clamdscans-stderr

Get stderr when running clamdscan
Make upload app talk to write api

 - Change the upload method to send data to performance platform client
   rather than mongo directly
 - Rework the tests to mock the performance platform client rather than
   checking values in mongo
 - Move tests from feature tests to unit tests. The steps used by our
   feature tests would have needed to post to Backdrop (which isn't
   running). We could have mocked out Backdrop in the feature tests but
   we already do this in our unit tests, and this is the right place to
   test this functionality anyway. This was mainly about moving where
   filters are tested for excel and csv uploading
 - Add performanceplatform-client to requirements.txt
Add build to ackrc
Remove NewDataSet import

- We're not using it anymore
Merge pull request #319 from alphagov/use-write-api

Make upload app talk to write api
Merge pull request #320 from alphagov/add-build-to-ackrc

Add build to ackrc
Add test for empty data in PeriodGroupedData

If an empty data array is passed to a query with a duration parameter,
currently we get a Python exception. This fixes that error.
Merge pull request #322 from alphagov/bugfix/add-test-for-empty-data-with-duration-parameter

Add test for empty data in PeriodGroupedData
Add some more context around upload errors

* Add a data_group and data_type field for easier filtering
* Add a backdrop_upload_error field - I would like to add a tag but the
  logstash formatter we use doesnt support this
* Log the exception info as well
Merge pull request #323 from alphagov/better-upload-error-messages

Add some more context around upload errors
Remove example files

These are misleading now we have json schemas. It may be worth having a
template per schema in future.
Merge pull request #324 from alphagov/remove-example-csv

Remove example files
Remove token generation tool

Token generation is not handled in this application anymore.
Update documentation and dev config

To reflect reality.

This hasn't been touched in a long time. It contained documentation
from when Signon and Backdrop were running on the same set of machines.
Merge pull request #325 from alphagov/update-documentation

Update documentation
Use single quotes in bearer token error

Using double quotes means that they have to be escaped in the JSON
output that we return to users. It's nicer to use single quotes so
that they're easier to read in the JSON.
Remove RAW_QUERIES_ALLOWED configuration

This hasn't been used since at least 65fe1d3a58dc0b4cad7caba753fd28a4af2fee6e
in September 2013.
Add feature tests for read API cache header times

As Alex,
I would like to have confidence in my refactor,
So that I don't break an application I haven't worked on in months.
Refactor Backdrop to use the client's admin API

The performanceplatform-client now has the ability to interact with
Stagecraft, so replace the concept of DataSetRepository and
UserHttpRepository with that.

Also remove the concept of DataSetConfig and UserConfig because
those namedtuples don't really add anything anymore.

This changes the authentication mechanism from a token that Stagecraft
knows to an OAuth access token for an API user from Signon.