Add abstract Stream class.
Interpreterless parsing.

1. Use new streams instead of raw file handles in `Filename` and `Parser`
   classes.
2. Modify `Parser` so that it doesn't require `Interpreter` instance for
   compiling ASTs.
3. Add AST caching for FastCGI SAPI.