Change RangeController selection to null and restrict selection to content

This changes the default value of .selection null, forcing users to set the initial .selection to a compatible type (Array, Set, ...). Specs have been expanded to cover selection as Array and selection as Set.

Additionally, .selection is now constrained to elements that are present in .content.