Rewrite saveToFile / writeToStream

This pull request factorizes common code from saveToFile/writeToStream to make code easier to maintain. 

Also, flvtool2 usage was rewritten to be a bit cleaner, and the travis config installs it so that tests can be performed accordingly.

Note that, as before, updateFlvMetadata does nothing when writing to streams. In the future I would like to enhance streaming support:
* stream ffmpeg output to flvtool2 directly (enabling flvtool2 when writing to streams as a side effect)
* enable using other FfmpegCommand instances as sources (so that you can chain instances together) ; ideally the goal would be to spawn a single ffmpeg process with a complex filter graph, but we could also spawn multiple ffpmpeg processes  and pipe them together
* enable multiple streams as inputs/outputs with complex ffmpeg filter graphs