load existing manifest directly from file and fix appending

this fixes #65, #60, #59 and #55.

This change reads an existing rev-manifest file as part of the rev.manifest() call instead of injecting the existing manifest file into the stream of asset files.
to keep the default behaviour, there is a new boolean option `appendExisting`. the usage looks like:
```
return gulp.src(['assets/css/*.css', 'assets/js/*.js'], {base: 'assets'})
	.pipe(gulp.dest('build/assets'))
	.pipe(rev())
	.pipe(gulp.dest('build/assets'))
	.pipe(rev.manifest({base: 'build/assets', appendExisting: true))     //base is the folder to read from
	.pipe(gulp.dest('build/assets'));
```

my goal was to simplify the usage, fix the existing bugs and make it easier to read/maintain.

You've added this dependency, and you're including it here, but you never use it.