Make sure helpers.testDirectory don't try to delete CWD

Deleting CWD is not allowed on Windows, so most chances are this helper
was breaking it when used in a `beforeEach` block.
Merge pull request #452 from SBoudrias/window-path

Only match valid character separator in path resolution
Merge pull request #451 from SBoudrias/fix-testDirectory

Make sure helpers.testDirectory don't try to delete CWD
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.