[#47 #36] Serialize requests to file using gob

To replace the serial plaintext representation of request and timestamp.
This fixes a bug whereby we were unable to delimit POST requests with bodies
because they didn't end in `\r\n\r\n`, frequently resulting in:
```
--- FAIL: TestSavingRequestToFileAndReplayThem (2.80 seconds)
        integration_test.go:346: Timeout error
```

Now we don't need to play guesswork with `Content-Length` headers or
introduce a custom delimiter. As a bonus, the code required is also slightly
simpler.

It is no longer possible to manipulate the `.gor` file by hand; but it does
make it trivial to write a tool that can parse and modify.

There are some `go fmt` indent changes rolled into `replay_file_parser`.
Move ParsedRequest{} to gor/utils sub-package

This de-dupes the type definition used in both `listener` and `replay`.
Rename ParsedRequest to RawRequest

Since it contains a raw byte slice of the request data rather than a
`http.Request` object.
Merge pull request #48 from alphagov/binary_file_format

[#47 #36] Serialize requests to file using gob