Another attempt at fixing literal equality, hash and comparison handling.
Here lexical representations and values are kept separately, but all comparisons happen in value space.

This is keeping the existing rdflib behaviour for literal > < comparisons, here everything is compared based on the value. This means we can do some neat things:

* Compare literals with python objects, i.e. Literal(1)<2
* Compare literals without regard to datatype: Literal(1)<Literal(2.0)

BUT

This means we more completely ignore http://www.w3.org/TR/rdf-concepts/#section-Literal-Equality
Which is quite clear that data-type and lang must match for equality.

Now, to make __eq__, __gt__ and __hash__ consistent this must be true:

>>> Literal('1', datatype=XSD.integer) == Literal('1.0', datatype=XSD.float)
True

Which is probably not what we want.

I belive the neat comparisons will have to go...
old changes
merge with master
reworking literal __eq__ and added eq, rich comparison methods are still random
moved default eq method to Node
merge-master
merge master
fix broken merge
travising
test for #237 double literal corruption
Merge pull request #252 from drewp/master

another test for the fix in #237
added neq methods
pyRdfa Parser error: Relative import was missing in html5. Thanks to Florian Demmer for finding this.
Merge branch 'master' of https://github.com/RDFLib/rdflib
 released 3.4.0
back to dev version number
pyRdfa, HTML5 mode: Including the @dateTime attribute alongside @datetime (the HTML5 WG should make up its mind:-)
Merge branch 'master' of https://github.com/RDFLib/rdflib
doc update - get rid of 2.4 work-arounds
merged from master