attached is an updated patch, with uwe's changes, plus some additional conversions like TermsFilter and FieldCacheTermsFilter
The range ones are a bit tricky, mainly because they work with collators with makes no sense with byte. but if collator is null then byte makes sense.
the collator stuff is silly in a way, if we switch collation to byte it will use less ram than even the original String in lucene 3.x, and sort much faster.
one option might be to split the collating range stuff into its own classes or something, i think its a bit confusing how collation is mixed in with 'binary' order... it tricks you into thinking the 'default' is UCA or default locale or something, but is neither.