First part of abstract file-handling done (lexer).

NOCC is moving away from just having FILE *fp / int fd type file-handling
towards something that can handle other types of file (potentially).  A
main thing is so that a user-program can "#include <http://.../foo.h>" or
similar and the right things happen.  Sure there are lots of niggly issues
with this type of thing, but experimenting.
Updated .gitignore.