feat(promise): unit promise can now be created with a value
test(promise): add test covering chaining of promises
fix(utils): use the type of the second argument

The passed-in value is the reference, thus its type should be the one
to decide which comparison to use.
The stringDiff function is also protected against non-string arguments.
feat(fixtures): implements fixture function

The fixture function is part of the environment in order to use
data provided in the options.
Files are loaded asynchronously and according to the context (node,
browser) thanks to the loadFile option that is already used by
the reporters.
Files processing after loading is also done asynchronously using
a promise.
Custom handler can be added to an environment using the
Environment::registerFixtureHandler
fix(matchers): be message now take into account the state and the result

Previously there was no distinction in how the message was built when
the state was a function or a property, that's now the case.
At the same time, the message now use and instead of but when the result
is the one expected.
chore(Cakefile): remove extra whitespace
chore($tests): usage of istanbul is now conditionned to COVERAGE var

When running the tests locally, the error message can sometimes be weird
due to the istanbul injection. In that regard, using istanbul is now
enabled using the COVERAGE environment variable.
test(environment): add better coverage of inside/outside it errors

fixture, whenPass, dependsOn, withArguments and withParameters are
now covered for their usage inside/outside a it block.
feat($cli): implements cache for loadFile helper
docs(README): update README
fix($cli): loadFile cache was never filled with loaded content
refactor(index): use oneliner to start either cli or server
fix($tests): remove duplicated bin/spectacular in tests commands
style($tests): change fixture tests description
Merge branch 'feature_fixtures'