Add support for backgrounds on inline elements. Fix fixup() by removing it.

The code that managed ranges was buggy - failing on edge cases such as a span within a span. I have refactored the code so that the context information for inline formatting can optionally be stored within a fragment. This seems cleaner to me, and fixes the bugs encountered when making these changes by removing the need for the fixup() functionality (and ranges).

If there is an issue with storing the inline context as I have changed it to, let me know and I'll try to fix the existing range based code instead.