Rewrite feature descriptions

Rewriting to simplify and make the description of the application
sound more like that of a command-line utility.

* Consolidate separate "views sorted records" features into one.
* Shorten file names of features
* Rename "inputs file" to "starts sorter," and include choosing
  the sorting method in this feature

Acceptance cukes are skipped because new steps are undefined.
Align steps to new feature description
Rename Session to Controller

Since this is a command line utility, there is no interactive "session"
Rather it makes more sense to call our coordinating unit a "controller".
Rename Controller to Sorting

More informative name: a sorting is an instance of the application
execution.
Rename memoized 'controller' to 'sorting' in spec
Reorganize features

Instead of maintaining a feature called "Record manager starts sorter"
and another that combines different kinds of sorting in "Record manager
views sorted records", it makes sense to drop the first and split up
the second since the application is not meant to be interactive.

This also allows us to think of our sortings differently so that
we can imagine them as instantiated according to the chosen sort
method and polymorphically treated from there.
Collapse Given steps for each feature

It is not easy or desirable to maintain state between these
two steps, so it is better to consider them as a single step.

This makes more sense considering that the application is run
as a command line utility with both the sorting method and the
records given as arguments at initial execution. Both are chosen
at the same time.
Rename feature test collaborators and World functions

to simplify and shorten code.
Create RecordParser::Sorting namespace and inheritance tree
Pass Given steps of each feature

Adapting the existing code to fit the new feature definitions.

* Setting the file contents in initialization instead of in a separate #input.
* Removing unnecessary behavior (welcoming, announcing the file)
* Adjusting specs to match.
Remove unnecessary spec context
Access World's sorting ivar directly

Was getting "undefined method `show' for nil:NilClass (NoMethodError)"
in failed When step, with code "sorting.show"

Now getting "undefined method `show' for #<RecordParser::Sorting::ByGenderAndLastName:"
which is normal and expected.
Correct reference to test collaborator

Missed this in e6c795c: "fake_output" should now be called "out".
Separate specs and pass features

This commit separates the specs for RecordParser::Sorting::Base
into separate specs for RecordParser::Sorting::ByGenderAndLastName
and RecordParser::Sorting::ByLastNameDescending, adding code to
those classes to pass specs.  Features are passed in the process.
Move code to child classes
Simplify output by removing heading and blank line

Previously, the application output a blank line and a heading before
presenting the sorted records. Since the app is not interactive and
the method of sorting is chosen at execution, the heading is noisy
and not necessary.

This commit:
* Removes the heading from the sample output in feature scenarios.
* Removes specs that reinforce the heading behavior.
* Removes the code that produced the heading.
* Simplifies and combines spec setup.
Shorten Sorter method names
Simplify private method name
Collapse private methods
Improve spec documentation