Apply mappings over whole document

We should be able to map any of the returned values from GA into a field
with another name. We want to use this to be able to map a GA number at
completion stage into a count of transactions-by-channel.
Merge pull request #81 from alphagov/mappings-for-all

Apply mappings over whole document
idMapping should work on any field in document

Previously idMapping would only work over dimensions returned by the GA
query. We have a requirement to use a field that will only exist on the
document as part of the id. This commit moves the id generation logic to
after the munging of the document then uses fields in the doc rather
than off the item.
Merge pull request #82 from alphagov/idMapping-for-all

idMapping should work on any field in document
Additional items should be added before idMapping

Previously additional fields were added to the documents after that had
all been created. We want to use an additional field as part of creating
the _id so it need to be available to the build_document function. This
commit pushes the additionalFields down into this function.
Merge pull request #83 from alphagov/idMapping-for-all

Additional items should be added before idMapping