Simple interface for Plack::Test

Plack::Test has been often criticized about the callback-centric interface. It has been discussed at #180 and there are alternate implementations such as Plack::Test::Agent and now Plack::Test::Simple.

This was originally due to the lack of OO interface in one of the backend using Test::TCP, but now that Test::TCP implemented it a while ago, there's no reason that Plack::Test also has to follow the functional interface.

This very simple patch adds a new simple OO interface (but keeps the existing `test_psgi` as a wrapper) to test PSGI application using HTTP::Request/HTTP::Response interface.

```
my $test = Plack::Test->create($app);
my $res = $test->request($req);
```

See also https://metacpan.org/release/Plack-Test-Simple which uses `test_psgi` internally for each request, and can be improved a lot by switching to this new interface.

All tests pass.

- [ ] Plack::Test::ExternalServer (for Catalyst) needs to be updated, and older subclass implementation might have to be supported unless it can do a version bump @rafl
- [ ] Documentation is a bit rough and could use an overhaul. There are some undocumented options such as `ua` to persist agent and client cookies

cc @plack/core @alnewkirk @chromatic