FIXED: Triple copying while extending the hash tables during a transaction
causes modifications to survive if the transaction is discarded.  Wouter Beek.
Cleanup obsolete O_SECURE code
Add SECURE code for looping t->reindexed
Added magic number tests to make tracking triples easier.
FIXED: Only the tail of a ->reinidexed chain can be considered garbage.
FIXED: Stop transactions from garbage collecting reindexed triples.
Fixed transaction_discard(): reindexed triples should not be touched,
only the final one.
Removed done TBD from comments.
ENHANCED: Limit considered size for O and PO indexes to the number of triples
(because we do not have resource GC, this may be higher).
ADDED: rdf_statistics/1: lingering(-Triples), showing #triples freed but
not yet released for re-use
FIXED: Added enter/exit scan to update_duplicates() to avoid that
duplicate detection crashes on freed triples.
FIXED: Delay unregistering atoms and literals from triples until the
triple is really deleted.  Without, we may still process the triple
after it has been deleted.
PORT: 32-bit version of modified deallocation of triples.
FIXED: Do path normalization on URLs that are relative to the base. We
also collapse sequences of // to a single /. Rapper does not appear to
do so. Jacco van Ossenbruggen.
FIXED: rdf_reset_db/0 could crash.
ADDED: rdf_current_predicate/1, rdf_subject/1 and rdf_resource/1 now fail
silently if the argument is a literal.  Used to raise a type error.  This
provides more logical support for generated goals, such as optimizing
rdf(S,_,_) to rdf_subject(S).
TEST: Use assertion/1 instead of homebrew
TEST: Asynchronous RDF GC can cause test for zero literals to fail,
while the actual destruction is just delayed.
FIXED: New type checking in rdf_current_predicate/1, rdf_subject/1 and
rdf_resource/1.
FIXED: Inverse triples.  Jacco van Ossenbruggen