Merge branch 'release/v0.11.0' into develop

* release/v0.11.0:
  Version bump to v0.11.0
Remove 'puts' from builder_spec.rb

Details:
* Not needed puts debug output to stdout.
Remove 'version' from Guardfile due to deprecation.

Details:
* rspec 2 is only supported by Guard now.
Uses Optser instead of Serf::Util::OptionsExtraction.

Details:
* Extracted the OptionsExtraction utility out of Serf
  and into its own gem, "optser". Same basic structure,
  with some slightly changed refactoring.
* Replaces all code that uses OptionsExtraction with
  Optser extraction.
* Removes OptionsExtraction code and specs.
Annotate response parcels with elapsed time.

Details:
* We want to track the amount of time (in microseconds) each request takes
  to be processed in a Serf App chain.
* Adds Serf::Middleware::RequestTimer to:
  1. Time the rest of the Serf App chain.
  2. Annotate the response parcel with the 'elapsed_time' header field,
    which contains the elapsed time in microseconds.
* Updates the Serf::Builder to insert this middleware in the beginning
  of the default middleware chain.
* Adds specs (including factory) for this middleware.
Update to new Rspec expectation syntax: "expect().to".

Details:
* Also removes some 'should' clutter in comments and spec descriptions.
Add Serf Loader to create groups of Serfs from config.

Details:
* Serf::Builder is good for creating a single Serf (Serf App).
  But there was no streamlined easy way to create groups of Serfs.
  Everything was manually instantiated dependency injection.
* Wanted an easy way to specify/configure and wire up the Serfs
  in a loose coupling manner, ala Dependency Injection; mainly from
  configuration DSL.
* Adds a Loader and Registry to do file loading, wiring DSL
  and Service Locator Pattern from a configuration hash.
  Configuration hash loading to be left to the developer since there
  are numerous ways to do it (e.g. yaml, json, database).
* The Loader is given a configuration and then loads and evaluates the
  DSL serf files for the registry; then instantiates the
  configured Serfs. Through which, only reachable components are
  instantiated.
* The Registry is the Service Locator Pattern. The wiring DSL is
  essentially lazily evaluated blocks. We want to load in all the
  components, then components instantiate when accessed. Note that
  wiring may be broken if not all desired components are registered
  before accessed.
* Added specs to test loader and registry
* Added example .serf DSL files for loading, and spec support.
* Updated Documentation. Includes clarification of "Serf" == "Serf App".
  And mention that a group of loaded Serfs by the Loader are considered
  a "Serf Map".
Making base_path parameter to Serf::Loader.serfup optional.

Details:
* The base_path parameter is optional in Serf::Loader::Loader#serfup.
  This change makes the method signature uniform between the two.
FIX: Serf::Loader spec to actually test Serf::Loader.

Details:
* The copy and paste was still doing the full Serf::Loader::Loader
  test instead of just the Serf::Loader.serfup.
Allow Env hashes to be used as part of SerfUp process.

Details:
* Wiring of Serfs using the loader and registry allow for
  looser coupling of components. But it still forces some configuration
  options to be tied into the wiring diagram (the .serf files).
  That is, URLs, database config or other required resource locations.
* Solution is to pass in an Environment hash for every time the
  loader loads a Serf Map. This way we the component wiring is
  decoupled from changing runtime configuration.
* Serfup config: the structure and wiring of the serfs + components.
  Env config: Runtime options for the serfs + components.
Raise a load error on missing a Serf from the registry.

Details:
* This raising an error on load whenever a nil is returned from the
  registry for a Serf when generating a Serf Map.
  This lets us fail fast, instead of running the program and
  then not being able to handle a serf request later.
Merge serfup config into options hash for Loader.

Details:
* Just simplifies the serfup method signature.
Swap Interactor return order to [kind, message].

Details:
* In practical use of these Interactors, especially with CQRS,
  the kind field is used more predominantly, and more often,
  than in cases where it is omitted.
* The returned parcels that lack a kind make it very difficult to
  discern the meaning of the parcel even when introspecting the
  message, thus in practice, the kind is always present.
* Whereas in parcels that lack a message message can yet
  provide good meaning when the kind is set.
* This make it easier for interactors to be written for this
  more common pattern.
Version bump to v0.12.0
Merge branch 'release/v0.12.0'

* release/v0.12.0:
  Version bump to v0.12.0
  Swap Interactor return order to [kind, message].
  Merge serfup config into options hash for Loader.
  Raise a load error on missing a Serf from the registry.
  Allow Env hashes to be used as part of SerfUp process.
  FIX: Serf::Loader spec to actually test Serf::Loader.
  Making base_path parameter to Serf::Loader.serfup optional.
  Add Serf Loader to create groups of Serfs from config.
  Update to new Rspec expectation syntax: "expect().to".
  Annotate response parcels with elapsed time.
  Uses Optser instead of Serf::Util::OptionsExtraction.
  Remove 'version' from Guardfile due to deprecation.
  Remove 'puts' from builder_spec.rb
Merge branch 'release/v0.12.0' into develop

* release/v0.12.0:
  Version bump to v0.12.0
Replaces ParcelBuilder with ParcelFactory.

Details:
* Middleware that used ParcelBuilder had to do more uuidable
  stuff to form a response parcel, and ParcelBuilder didn't do
  much except set a headers and message section of the parcel
  from passed stuff.
* We simplify the middleware and serfer by using a ParcelFactory
  that will take care of building up the proper UUIDs, headers,
  response message and response kind.
* ParcelFactory takes in the parent parcel, kind, extra headers and
  message as input to create a good parcel.
* Deleted ParcelBuilder and its specs.
* Updated Serfer and ErrorHandler to use ParcelFactory.
* Updated the specs: ParcelFactory, ErrorHandler and Serfer
* Updated the FactoryGirl creation to make fuller parcels, headers and
  messages. This mainly to add uuids and extra header fields.
Updates ice_nine dependency to >= 0.6.0

Details:
* ice_nine is still a new gem, we want to make sure we're up to date on
  any fixes and changes with it.
* Serf is also a relatively new and changing gem, so this update
  is to keep the pace going before we can actually call it really
  stable.
Updates gitignore to add tmp; remove comments.

Details:
* Minor release fixup because guard generated a tmp file.
  Comments were distracting.
Version bump to v0.12.1