Changed the architecture of the driver testsuite

Instead of having all driver tests in a single abstract testcase becoming so huge it is hard to maintain, the driver testsuite is now composed by a set of concrete testcases and a config object to build the driver and adapt the testsuite.
This makes the maintenance of the driver testsuite easier by having smaller targetted testcases.
It also separates the driver testsuite from the Mink testsuite (required now that testcases are not abstract anymore in the driver testsuite), which will avoid confusion for contributors, like https://github.com/Behat/Mink/pull/523#issuecomment-42429493

Currently, all tests have the same name than previously (this helped me to ensure all tests were preserved) and there is no change in any of them (except the path to the fixture file for the upload test). For tests named ``issue*``, I added a comment about their goal. My plan is to rename them, but I'm keeping the old name around for now to be able to check more easily which tests should be skipped for each driver.

FYI, this idea is inspired from the way the PHPCR testsuite works: there is a repo with the common testsuite composed from many concrete classes, and each implementation runs them by providing the appropriate config to load the implementation.

TODO: upgrade all drivers to the new setup