Extract enhanceStream from pipe

* lib/pipe now just pipes streams together
* lib/enhanceStream overrides the "pipe()" method to use lib/pipe
* guzzle.pipe() combines both lib/enhanceStream and lib/pipe
Cleanup

* Add guzzle.bindTo(gulp) to avoid having two different versions of gulp
  (the project's gulp and guzzle's gulp).
* Add lib/parent-gulp to hold the parent gulp
* Add lib/update-file-permissions to set mode of pseudo files (files
  created from plugins like vinyl-source-stream, revManifest, etc...)
* Add "saveTo()" to the enhanced stream (instead of
  "pipe(gulp.dest(...))")
Add shortcut methods to enhanced stream

You can now write code like this:

gulp.task 'mytask', ->
  guzzle.src('src/**/*.scss').sass().saveTo('public/assets')