refactor(reporters): browser stack reporter now extends the console one

There was too much duplication in these two classes and their names
was too ambiguous. Now the console stack reporter is named StackReporter
and the browser one BrowserStackReporter.
The file's loading and stack formatting is now completely handled
by the StackReporter.
The BrowserStackReporter now only handle the display part of the process.
fix(utils): fix missing inspect results for function and undefined
fix(matchers): fix missing description for haveBeenCalled with no spy
refactor($core): expectations description don't contains the example

The expectation description now only contains the matchers description,
to access the previous description you can use the fullDescription
property.
The examples also provides a fullDescription that aggregates the example
description with its expectactions descriptions.
feat(environment): add new it alias named specify

In some cases neither it nor the make sense, the specify method
is more neutral and can be used in these cases.
chore($tests): change the running specs helper messages

The helper now use the specify helper and provides a cleaner example
description.
test(utils): add test for inspect and objectDiff edge cases
refactor(reporters): remove unused reporter method

The ConsoleReporter::hasFailures was never used, there was no point
to keep it in this class.
refactor($browser): there was no need to test for commonjs in browser

The BrowserReporter is only used in a browser there's no need to test
if we are not in nodejs.
fix($browser): example without neither expectations nor reason was failing

Pending examples without expectations, for instance, was making the
reporter failing when trying to render the example reason. Now the
reason aside is now only created when a reason exist.
feat(matchers): proper use of and or but in matcher's messages

But is used when the expectation fails, and and is used if it succeed.
chore($browser): remove logs in browser reporter
feat(fixtures): implements HTML fixtures and have.selector matcher

HTML fixtures are loaded and added to the DOM in a #fixtures div.
On nodejs the DOM is manipulated through the node-jquery module
that use jsdom internally.
The have.selector matcher currently use jQuery to perform a query
on a jQuery object.