a few minor patches

Here's a few minor patches:

* Allow any number of -e and -f options
* Make "-f -" work
* Update .gitignore
The latter could be simplified to str += std::string {std::istreambuf business};
Unfortunately I don't see how to unify the two branches either, and it's not worth it to extract that little bit of logic to a function of its own.