[features, typos] Fixed several typos
[bug] Stopped calling setup twice

These classes used to call 'setup' on their own.. but then a parent
class came into being and started doing it on their behalf.. but I
forgot to remove their local setups.
[config-refactor] Config is now a Class

Previously, Config was a module that mixed into a few classes to provide
general configuration stuff.

However-- I found this was overly complicated-- in short, a Config
should represent a Hash that gets values as follows:

1. Start with sensible defaults
2. Update entries with values from config.yml (if any)
3. Update entries as slide creation progresses

These entries should be available for reading (or writing) at any point
during the creation process.

And so-- in this first pass-- a Config is a concrete object. There's a
single instance that's passed around, and this instance has settings and
getters that are reasonable for a first pass.
[config-refactor] Config is now an OpenStruct
[config-refactor] Switched Presentation to use Forwardable
Refactored Config implementation.

* It's now a class, and no longer a module.
* There's now a single Config that moves through the presentation,
  rather than multiple Configs. This lets us mutate the single Config
  more cleanly. Previously.. with multiple Configs there was odd logic
  for determining if something "should" or "should not" be set--
  including whether or not the value to be set was a default.
* Once that logic was removed, it was pretty clear that a Config was
  basically an OpenStruct.
* Presentation, a class which previously had an "include Config" now has
  a distinct Config object and delegates method calls to it.

Merge branch 'config-refactor' into upcoming

* config-refactor:
  [config-refactor] Switched Presentation to use Forwardable
  [config-refactor] Config is now an OpenStruct
  [config-refactor] Config is now a Class