move ParseErrorCode to error/error.h

In order to enable the customization of the error macros
 - RAPIDJSON_PARSE_ERROR_NORETURN
 - RAPIDJSON_PARSE_ERROR_EARLY_RETURN
the user may need to have access to the ParseErrorCode enum
already.  This requires a separate header location than the
GenericReader.
reader.h: prepare "early return path" for exception support

In case of a user-defined RAPIDJSON_PARSE_ERROR_NORETURN that throws
an exception instead of using the Rapidjson ParseError API, the early
return paths performing the stack unwinding manually can be omitted as
well.

This patch provides a customizable RAPIDJSON_PARSE_ERROR_EARLY_RETURN
macro to remove these (then unneeded) control paths from the parsing
implementation (with and without a return value).

Secondly, clearing the parse stack is moved to a small helper struct
that calls stack_.Clear() from its destructor.  This avoids the need
for the 'goto' in the ParseStream function and ensures proper cleanup
even if e.g. a user-defined Allocator throws an exception.
GenericDocument: simplify error handling in ParseStream

 * unconditionally store error state of reader after parsing
 * clear stack after parsing by using a ClearStackOnExit scope guard
add ParseResult
update documentation of ParseResult and related functions
Merge branch 'upstream/master' into feature/exception-support

Conflicts:
	include/rapidjson/reader.h
error.h: add kParseErrorTermination (from #61)
error/en.h: fix typo, add termination string
Merge pull request #64 from pah/feature/exception-support

Improve exception safety and add support for swtiching error handling to exceptions