Factor out common parse logic

This removes the logic in GA core which builds up records to post to backdrop.

It includes common logic around id construction, additional fields, use of plugins etc. 

It's a bit messy but as it's a pretty straight copy this is just showing existing issues. In the webtrends pr I will probably do a bit of refactoring. I'm pretty confident that it's covered by the moved tests and a few have been added in.

The big end to end test ensuring that the ga core functionality is identical could possibly be removed.
This is also inconsistent with the the ComputeId plugin does it.