RUBY-624 Read Preference Straw Man

Just want to see what people think so far... took me a while to flesh out the tests.

I don't think the tests are particularly clear. The `select_nodes` test can transition to being a shared example with an input and expected output as given values but I think we lose something without the description there sometimes because all of the examples are unique to the mode. As an example, in some modes we need to pay attention to order of the selected nodes, for others it doesn't matter.