docs: Replace Subversion links with Git
tests: Don't use /dev/tty

The behavior on OSX is different - we don't get a I/O error so the test is
useless.
Rename xml_document::load to load_string

This should completely eliminate the confusion between load and load_file.
Of course, for compatibility reasons we have to preserve the old variant -
it will be deprecated in a future version and subsequently removed.
Update version to 1.5
docs: Add changelog for 1.5

Release date is (tentatively) 11/27.
tests: Fix version test
docs: Regenerated documentation

Also fix documentation jam rules for Windows.
tests: Fix tests on various compilers

Some compilers don't handle NaNs properly.
Some compilers don't implement fmod in a IEEE-compatible way.
Some compilers have exception handling codegen bugs (DMC...).
Change has_declaration to work on node pointers

This is more for consistency with the surrounding code than for performance.
Add more assertions for page memory handling code
Prevent depth underflow when printing documents

Since depth is unsigned this is actually well-defined but it's better to not
have the underflow anyway.
Make sure remove_node fully detaches the node

Right now remove_node is only used in contexts where parent is reset after
removing but this might be important in the future.
XPath: Minor string operation refactoring

Extract end of string to rend and add comments to translate_table.
XPath: Refactor eval_once to use set type

This will allow us to implement nodeset_eval_last evaluation mode if necessary
without relying on a fragile boolean argument.
Minor refactoring of tree modification

Remove redundant this-> from type() call (argument used to be called type,
but it's now type_).
Use _root member directly when possible instead of calling internal_object.
Refactor node type checks for attribute insertion

Add allow_insert_attribute (similar to allow_insert_child).
Fix node_declaration copying with empty name

node_copy_string relied on the fact that target node had an empty name and
value. Normally this is a safe assumption (and a good one to make since it
makes copying faster), however it was not checked and there was one case when
it did not hold.

Since we're reusing the logic for inserting nodes, newly inserted declaration
nodes had the name set automatically to xml, which in our case violates the
assumption and is counter-productive since we'll override the name right after
setting it.

For now the best solution is to do the same insertion manually - that results
in some code duplication that we can refactor later (same logic is partially
shared by _move variants anyway so on a level duplicating is not that bad).
Merge branch 'master' into compact
Add allocator reserve for copying

Since copying no longer relies on child insertion we have to also reserve
space in the hash table for the allocator so that pointer manipulations are
guaranteed to succeed.