fix($npm): add missing node-diff module
style($tests): change description in examples using runningSpecs
test($core): add tests for sequential shoul with modifications between
fix(matchers): equal to not failing with empty actual object

Previously the equal matcher was doing the iteration on the actual
object or array, leading to false positive when a empty object or
an empty array was set as the actual value.
The length of either the values or the keys are compared beforehand.
feat(matchers): implement throwAnError matcher

Allow to test that a subject function throw an error.
If a regexp is passed to the matcher, the error message
will be compared to the regexp.
The returned matcher provides two methods `with` and
`inContext` to specify the context of the function call.
chore(misc): removes unused utils and extensions
feat(factories): implement factories helpers

Includes:

  - the `factory` method that build Factory object. when called twice with
    the same name it reopens the factory.
  - the `trait` and `set` methods that build either Trait or Set objects
    for the current factory. These methods are in fact injected into
    global when calling the `load` method of either the current factory
    or trait object.
  - the `create` method that look for the factory and return the created
    object.
refactor($tests): add concrete usage of whenPass in promises specs
style(formatters): change badges counter styles
fix(matchers): promise based matchers's stack trace

Promise are executed in a `setImmediate` callback, and doesn't
know about the expectation creation stack. In that case it's
not possible to find the spec file in an error's stack.
To prevent that, an error is created on a should call and store
in the expectation. If the matcher end either with true or false
(no error was raised, no timeout), the passed-in error is used
to find the spec file.
wip(server): introduce a server option for running specs in browser

In order to run specs in a browser the build has been changed to join
all files loaded into a vm inside a spectacular.js file.
A server option was added that, when set, will force the spectacular
bin to run a server rather than running the specs on node.
refactor(matchers): remove all dependencies in matcher to support browsers

Mostly the refactor concerns the diffs algorithms. The string diff
from John Resign was included in the file and the object diff was
rewrited from scratch.
refactor($core): all shared modules now use exports polyfill
chore($core): colors module is now imported in the index

It allow the colors module to be available both in the cli and the server.
chore($npm): remove diff modules

As the diffs utils are now defines in the matchers file there's no need
for having node modules.
refactor(server): server now use express rather than the http module

Express is much suited to quiclky build a server with static assets
and templating, which will be required to create the spectacular server.
feat($browser): spectacular server running and reporting

Includes:
  - ResultsFormatter was rename as ConsoleReporter
  - add a BrowserReporter that bootstrap the spectacular environment
  - add a Environment.getGlobal method that return the corresponding
    global according to the context
  - the server now serves an html page that includes spectacular,
    matchers, helpers, specs and css for the reporter
  - the browser reporter have to mock the console results in buildResults
    in order to allow the virtualEnv helper to work
fix($tests): all examples now pass in browser as in node

All unprotected access to global was removed in favor of access
to the spectacular.global defined in the bootstrap.
style(matchers): inspect arguments in function matchers

Includes:
  - fix indentation of inspected array
  - remove uneeded white space at string diff start
  - use inspect on @arguments in haveBeenCalled and throwAnError
feat($browser): use stylus to create the runner stylesheet

Instead of a plain css file the css is generated using the stylus module.