Add origin parameter to setSelection()/setSelections()

@peterflynn - try this and see if setting an origin in your selection code in everyscrub now merges properly again without having to wrap it in an operation with the replaceRange.

Addresses #7182.