feat(all): conform to node and gulp behaviors

- conform to file.base and file.relative behavior of gulp.src
- conform to Path.extname behavior of node standard modules
- conform to Path.basename(file, Path.extname(file)) behavior of node standard modules
- organize and enhance test suite

BREAKING CHANGES
- string parameter which includes path are relative to the base directory set by gulp.src instead of relative to the parent directory of the file.
- hash parameter has changed.
- - dirname key has been added to support changing the relative directory of the file.
- - basename key has been added and conforms to Path.basename(file, Path.extname(file)) behavior.
- - ext key is now 'extname' and conforms to Path.extname behavior.
- function parameter argument has changed. Argument is now a single object with values intended to be modified.
- - dirname - the relative path to the file.
- - basename - the filename with the extension removed.
- - extname - the extension inclding '.'.
- - callback is no longer responsible for joining the parts.
test(dirname): add test for gulp.src `base` option
fix(tests): make sure tests actually do something
test(dirname): add tests for other types of filename patterns
docs(README): update README to the new interface
Merge pull request #14 from rovjuvano/feat/conforming-behavior

Feat/conforming behavior