Interpreterless parsing.

1. Add abstract `Stream` class.
2. Use new streams instead of raw file handles in `Filename` and
   `Parser` classes.
3. Modify `Parser` so that it doesn't require `Interpreter` instance
   for compiling ASTs.
4. Add AST caching for FastCGI SAPI.
Fixes HTTPD SAPI
Merge pull request #69 from peelonet/parser-rewrite

Interpreterless parsing.