Separate library code from CLI.

* Use vinyl-fs for file manipulation.
* Gulp compatibility out of the box.
* Streams instead of sync file access, so it's faster.
* Added tests (100% coverage for the library code).