Restructure performance specs

So that we can add a context that doesn't use "two healthy backends".
Allow vegeta args to be passed to shared example

The VegetaHelper already allows a hash of additional CLI arguments to be
passed on. Allowing individual tests to modify the duration or rate of
requests. This reinstates that ability by allowing a hash to be passed to
the shared example, which defaults to `{}`.
[#59040160] Throughput and concurrency tests

Tests for throughput (requests per second) and concurrency (requests in
flight at a single point in time). These appear to be mostly limited by the
file descriptor ulimit of the process/shell that they are run from.

Because we're launching the following from rspec all in parallel:

- 2x Vegeta attack.
- 2x Vegeta report.
- 2x Simple backend.
- Router.

The combination of the above, not necessarily the router, is also pretty
harsh on system resources such as CPU. So it would be rude to run these from
CI. As such I'm marking them as optional. You can opt into running as
follows:
```
ulimit -n 4096
rspec --tag ulimits
```
Merge pull request #58 from alphagov/59040160-perf_bound_testing

[Fixes #59040160] Throughput and concurrency tests