Ensure that TravisCI tests all subpackages

Previously this was only running the integration tests in the root
directory. `go test` needs to be given wildcard in order to pickup tests in
sub directories/packages.
Fix failing Elasticsearch test

Use the local instance of `ReplaySettings` rather than `Settings` which is
initialised as an empty struct and then populated by flag. Since we're not
calling flag, this remains empty, and `esp.Init()` is passed an empty
string.

For the same reason the call to `settings.Parse()` is actually redundant.
`Parse()` could be changed to use `r.ElastiSearchURI`, but it results in the
plugin begin setup/registered twice, because it doesn't give us access to
the host/port/index properties.
Merge pull request #44 from alphagov/run_all_tests

Run all tests + fix failing ES test
Allow injection of additional headers in replay

Similar to curl(1) and siege(1):

- Can be specified multiple times.
- Will overwrite headers of the same key name in the original request.
- An argument without a value (`Foo:`) will be set as empty.
- Leading and trailing whitespace will be stripped from the key and value,
  otherwise it's difficult to determine where the key or value begin/end.
Unit test the parsing of -header arguments

Per the features described in the preceding commit.
Integration test for header injection

Re-using one of the existing integration tests. If we were to refactor some
of the logic to send and receieve a single request then it would make sense
to split this, and the cookie validation, out to separate test cases.
Merge pull request #43 from alphagov/replay_header_injection

Allow injection of additional headers in replay
[#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.
[README] Stylise GOV.UK link

Use `https://www` to spare a redirect. And capped-up-cos-we-mean-business:
http://www.theregister.co.uk/2012/02/01/gov_uk_single_domain_release/
[#31] Document BasicAuth injection

Has been asked about previously. `http.Client.Do` does this for us.
Merge pull request #51 from alphagov/document_basic_auth_injection

[#31] Document BasicAuth injection
Merge pull request #48 from alphagov/binary_file_format

[#47 #36] Serialize requests to file using gob
Merge branch 'master' into module_architecture