Refactor attester as a module

Make attester as a module that can be used by other node modules and not only a command line tool.

Responsibilities are split in different submodules that communicate through an event bus that allows a greater extensibility.

Close #39
Campaign id in test URL

Given the need to have a campaign id in the test URL (to support multiple campaigns) this commit refactors the way test types are written delegating more actions to the BaseTestType.

By using a template and allowing to inject element in the page it'll be possible in the future to inject additional behavior, like script loaders.

Each test type should implement an attester.currentTask.start() method, that is called by attester when the task is ready to be executed.
Test-type are also responsible for loading script, the simplest way is to call attester.currentTask.includeTest, this would delegate loading to whatever script loader is configured.
Plugins can inject code to be executed before the start simply pushing callbacks into attester.currentTask.actions

Close #49
Fix logging with --no-colors outputting objects

The issue here was that when logging from Attester with `--no-colors`
passed in command line, it sometimes logged the String object (console.dir
fashion) instead of a logging a string literal (precisely it was fixed by
https://github.com/Marak/colors.js/commit/5ca667df4a9f86f6c202eca5eb1524cd8d2dd331).

Close #48.
Page load callback

Add an action in attester to wait for page load before starting tests