Re-factor to allow inheritance.

Remove arguments from run so that Promise can call run even if inherited
Promise implementation overrides it with different implementation having
different callbacks.
Re-factor tests to use mocha.

Start using mocha as test framework and refactor tests accordingly.
Remove server.js.

Server.js is now provided by top level repo "mini-components" so this
is not needed. In the end main reason to have this is to enable testing
and providing server in top level repo makes more sense so that all
test code and pages can be served by single server.