Custom test types

Change the way test types are loaded in order to allow creating custom plugins.
The logic now is the following

- try to resolve the test type inside the repository
- if missing require `attester-type`

Close #80
Upgrading to Socket.IO 1.1.0.
[breaks-compat] Natural language browser config & semver

Regarding the required browsers for the campaign:

The old config properties `majorVersion`, `minorVersion` and `revision`
were removed. Instead, semver-compliant version matching was put in place.

Browser config based on verbose entries with `browserName`, `os`, version
entries and `name` for display alias, was replaced with simple processing
of natural-language string (like "Chrome 27 on Android").

Close #40.
[breaks-compat] Refactor confusing browser/browsers options

Renamed `browser` to `run-browser` to avoid confusion with `browsers`
specifying required browsers for the campaign.

Close #36.
Bump more dependencies

- `jasmine_node` became a multitask
- `expect` changed its main file name

Close #104
Error summary at the end of each test & campaign

Close #12. Close #52.