Autooptimize & constrain no. of PhantomJS instances

Add an option to automatically calculate the best number of PhantomJS
instances (if `--phantomjs-instances auto` is passed to the script),
and to fix incorrect / too big input values.

The CLI parameter is required, because the default is 0 (don't use
Phantom).

The number of instances will be constrained to available CPU threads and
free memory. Exceeding the resources results mostly in decreased
performance and/or crashes.

Before that, there was a way to set the number of instances by invoking
e.g.

`npm config set ariatemplates:phantomjsInstances 8`

but this worked only when running attester via `npm run-script` (the
default value in `package.json` had to be 2 due to limitation of Travis
CI).

Close #30.
Exception in AT test constructor stopping attester

When an exception was thrown from the constructor of the AT's test-under-execution,
it was not caught by Attester and made it wait indefinitely for the test
result.

Close #26.
Close #31.
Interactive page to debug tests

Add an interactive page that can be used to easily debug tests of any test-type.

`BaseTestType` now has an additional parameter, `debug` that is specified links to this interactive page.

To do so, this commit introduces generic middlewares.

Close #34
Default port 7777; check if port available

Attester used to let Node decide about the port for the server if it was
not passed as a parameter. This however is not very handy to have random
port on each run.

This commits makes 7777 be the default port (unless some value is
explicitly passed, or 0 for the old, random behavior).

Also, if the passed port number (or default one) is taken, the next
available port number is used instead and a warning is printed.

Close #32.
PhantomJS installation guide
Handle task timeout

This commit introduces a general timeout for tasks at server level.
Some test environment (mocha) handle timeout on the slave, however this might fail or not be available at all.

If the server doesn't receive a task finish from one of the slave it'll mark the task as error and go on with another one.

The task timeout is configurable from the command line with `--task-timeout` and by default is 5 minutes.

Close #37