Because of the platform structure, we have to provide a way to add ranges to
Selection objects that aren't associated with a shell/nsFrameSelection.
This commit extends the original implementation with workarounds to add
these ranges by reaching into the internal implementation for adding ranges
and calling those functions directly.