Using C++ iostreams, rather than C FILE*’s.

Work arounds for a few bugs in p2c’s code generation (when StructFiles=0) were put in-place.
DVI output redirected to a std::ostream.
TeX file input may be passed in as a std::istream.
Removing pre-processor macros.

- I/O macros have been replaced with templated functions.
- A std::bitset has been substituted for the byte array + bit manipulation macros.
Adding an explicit search path for \input files.
Matching the method signatures in the README.

And adding the license statement to the header file.
No need for the log_file.
Overload was ambiguous.
Removing unused I/O methods.
Removing extra newlines left by the use of the C preprocessor.
Use the std::iostream methods directly.

Most of the methods wrapping the std::iostream in a FILE * style API have been removed.

Additionally, p2c had truncated some string literals to single characters. The configuration value for this change by-passes that bug.
Preserving the typedefs used in tex.web.

TeX uses int32_t and uint8_t for just about everything. The typedefs add clarity.
Use C++ style variable declarations.

We can’t set UseInits=3+ for full C++ style. A bug in p2c mishandles the scoping of for-loop variable in that case.
Better argument handling in tex::typeset.