Expand .gitignore with more files
Fix a failure to report xmlreader parsing failures

Related to https://bugzilla.gnome.org/show_bug.cgi?id=654567
the problem is that the provided patch failed to raise an error
on xmlTextReaderRead() return when an actual parsing error occured
Memory error within SAX2 reuse common framework

There is no reason for that class of errors to not use
the same handling allowing strctured error processing.
Fix parser local buffers size problems
Fix entities local buffers size problems
Fix an error in previous commit
Do not fetch external parsed entities

Unless explicietely asked for when validating or replacing entities
with their value. Problem pointed out by Tom Lane <tgl@redhat.com>

* parser.c: do not load external parsed entities unless needed
* test/errors/extparsedent.xml result/errors/extparsedent.xml*:
  add a regression test to avoid change of the behaviour in the future
Adding a new buf module for buffers

This also add converter functions between xmlBuf and xmlBuffer
* buf.c buf.h: the old xmlBuffer routines but modified for size_t
  and using xmlBuf instead of xmlBuffer
* Makefile.am: add the 2 new files
* include/libxml/xmlerror.h: add an entry for the new module
* include/libxml/tree.h: expose the xmlBufPtr type but not the
  structure which stay private
Convert XPath to xmlBuf

Easy as no buffer was exported in the APIs
Adding new encoding function to deal with the new structures

* encoding.c: adds xmlCharEncFirstLineInput, xmlCharEncInput and
  xmlCharEncOutput
* enc.h: the functions are not made public but added to this new header
Incompatible change to the Input and Output buffers

Since the whole set of structures was public, the only way
to switch to size_t clean buffer is to introduce an incompatible
API change. Modifying the xmlParserInputBuffer and xmlOutputBuffer
structures is the best place to make this change as those
structures are deep into the parser feeding data, and no public
API suggest to build those manually.
Convert XML parser to the new input buffers

The main changes are when the internal of the buffers structure
were adressed directly, we now use routines coming from buf.h
The routine xmlParserInputRead() which wasn't used anywhere is
deprecated too.
Convert xmlIO.c to the new input and output buffers

Relatively mechanical changes, this also led to a couple of fixes
upon review of the I/O code on buffer usage.
Convert C14N to the new Input buffer

one case of direct access cleaned up
Convert catalog code to the new input buffers

Only one place where the buffers fields where accessed directly
Convert XInclude to the new input buffers

A few xmlBuffer...() calls changed to their xmlBuf...() counterparts
Provide new xmlBuf based saving functions

* include/libxml/tree.h: adds xmlBufGetNodeContent and xmlBufNodeDump
  as xmlBuf based equivalents of xmlNodeGetContent and xmlNodeDump
* tree.c: implements one new routine and converts xmlNodeBufGetContent
  to use the xmlBuf equivalent. It should behave better as a result
  in case of data larger than 2GB.
New saving functions using xmlBuf and conversion

* save.h: new header providing new functions currently internal
          and xmlBuf counterparts of old xmlBuffer based ones
* xmlsave.c: convert functions to use xmlBuf as much as possible
Convert XMLReader to the new input buffers

A few direct access were replaced, and also one internal
xmlBuffer structure is converted to use xmlBuf instead
Convert the writer to new output buffer and save APIs

Only a handful of places had to be converted for xmlBuf and
the new saving entry point.