Extract assertions methods in its own module

This allow for cleaner syntax and it now extend the native assert module
in order to be a dropin replacement for `assert` for generators author.

Also added test and refactor assert.implement to be more reliable.
Update core tests to use new yeoman.assert

Also update use of deprecated yeoman.test.before method to
.setupTestDirectory() method.