test(matchers): add tests for match and contains with dom expressions

Includes:
  - add a literalEnumeration function in utils that produce an output
    such as '0, 1, and 2' with [0,1,2] as input
  - refactor Example::fullDescription to use literalEnumeration
feat(phantomjs): extend default timeout to 1mn
feat($core): implements support for inclusive and exclusive specs

Using the except and only methods you can define inclusive or exclusive
tests. Inclusive tests are simply not run, exclusive tests are run but
not every other tests that was not flagged as exclusive.
refactor(Cakefile): mixins now appear before factories
feat(mixins): implements a Globalizable mixin

The Globalizable mixin provides functionality to an instance to
decorate the global object with its own methods or properties.
Methods are bound to the instance that was loaded.
The globalizable mixin take care to keep a reference to the previous
values in the global object and to restore them on a unglobalize call.
The Trait and Factory class are now Globalizable.
refactor(environment): the Environment is now Globalizable
feat(environment): factories and matchers now are GlobalizableObject

The GlobalizableObject is like an object that have the Globalizable
mixin included. It can either expose a restricted set of properties
using the constructor arguments, or all of its keys when no properties
is passed.
fix(matchers): matchers and factories doesn't need context preservation

GlobalizableObject now provides a keepContext property which, when true
make sure the context of the original methods is kept.
It's set to true by default.
test(dom): cover case of expression as text child

Text expression must be leaves, if a child is set to a text expression
an error is raised.
feat(examples): implements shared example helper

Currently a shared example can be created using the sharedExample function
and then used with itBehaveLike. The block of the shared example receive
the options object passed to itBehaveLike.