Renamed Subject to Specification

Following confusion (rightful) of @docteurklein, misnaming of `Subject` became very apparent. There are two misleading objects in the Testwork right now:

- `Subject` in `Behat\Testwork\Tester\SubjectTester` and `Behat\Testwork\Subject`
- `$testSubject` in `EnvironmentHandler::isolateEnvironment($environment, $testSubject = null)`

I think original meaning of `$testSubject` in case of `EnvironmentHandler` is very close to the notion of **test subject**. So misnaming definitely doesn't happen there.

In case of `SubjectTester` and `SubjectFinder` though, I don't think we did a great job at naming this thing. `Subject` in those case is not only too vague, but also a misleading term put together with `EnvironmentHandler` behaviour. What we actually are trying to talk about is a **test specification** - subset of tests, next layer under the test suite.

This PR solves the potential confusion of framework writer by clarifying intention and goal behind `Subject`-thingy by renaming it into `Specification`. From now on, it's `SpecificationTester` and `SpecificationFinder`. I really think new names communicate much better and eliminate possible confusions behind their use-cases.