More refactoring and cleanup.

1. Previous intent to replace mootools and jQuery++ with more-capable, better-supported Sugar library not followed through on. Fixed.
2. This involved removing the mootools script file from `vendor/assets/javascripts`. Done.
3. Improved error-checking in `ContentSelection` class; now, calling `getContent` method without having previously called `setStart` and/or `setEnd` throws an Error with an informative message (e.g., “Selection starting point not set!”). Previously, the error message was “Cannot read property ‘childNodes’ of undefined”, which isn’t nearly as specifically informative.
Snapshot for the night.

The goal is to refurbish `SelectionAlert’ so that it uses the (new! fully-featured!) `ContentSelection` code (via `ValueHarvester`). To do that confidently, “needs specs” will no longer suffice for either class. However, `ValueHarvester` as coded assumes that:

  1. Fixture markup exists;
  2. Fixture markup includes full form markup with identifiers and fields precisely matching our CSAT demo’s “welcome” page form;
  3. Fixture markup includes boilerplate markup to use for selections;
  4. jQuery can work effectively and flawlessly with all o the above to simulate a human user of the demo for our automated-selection code.

Getting Item 4 working was where I finally had had enough. `ValueHarvester` (and everything else at a unit-test level) should NOT depend on *any* of those; those are for integration/feature specs, marked as such so that Capybara gets loaded and Works Its Magic.  So what we have here is:

  1. `SelectionAlert` code and specs, in the process of being cleaned up and migrated, and filled out, respectively;
  2. `CsatValueHarvester` code and specs; ditto;
  3. `UtilButton` code and specs, which are used for a form-cancel button in the (soon to be new! improved!) `SelectionAlert` code;
  4.  Dummied form markup, in a support file marked as being for `value_harvester`; dealing with *this* is the anvil that broke the straw’s back.

Basic plan:

  1. Move jQuery-aware code in `valueHarvester` to function variables, overridable by constructor parameters. Done.
  2. Trash the dummied form; use replacements for (1) in `ValueHarvester` specs. Next up.
  3. `CsatValueHarvester` green bar with full coverage and no fixture markup at all.
  4. `SelectionAlert` green bar with *existing* code and API using dummied `CsatValueHarvester`.
  5. Finish refactoring of `SelectionAlert`.
  6. Finish Card 22.

Tomorrow’s going to be fun. If I can wake up, that is. :-P