a follow-up to the datatype refactoring: 
* getting rid of casts in IntervalDatatypeIndex using visitors
* lazy type filtering in IntervalDatatypeIndex instead of the eager one
* separating EntireValueSpace onto interval and non-interval classes so
we can put unconstrained numerical data ranges like owl:rational to the
interval tree.
* looking only in the tree index when computing subsumers for interval
data ranges. Previously we also looked into the simple index. AFAICT,
this was partly due to the absence of the unconstrained ranges in the
tree (see above) and partly to account for rdfs:Literal, which should
subsume everything. The latter we now handle as (the only) special case.