Actually support streams, fix and add tests

### Included changes:
- Vinyl's `File` object includes a `.pipe` method, so no need to use a module (simple-bufferstream) for piping a buffer-backed file.
- Removed the `file.isStream()` check since we can now pipe both streams and buffers in the same fashion.
- Filesize checks now supports both buffers and streams.
- Plugin now only replaces file contents when the filesize is reduced.
  - This fixes an issue I was seeing with images "optimized" to zero bytes.
  - This also prevents "optimizing" to a larger filesize when the image had been previously optimized.
- Fixed the unsupported image test.
- Add a separate null file test and image stream test.

Please let me know if you have any questions/concerns regarding a specific commit!