Merge branch 'release/v0.14.0' into develop

* release/v0.14.0:
  Version bump to v0.14.0
Split Builder use_defaults into two parts.

Details:
* We split the use_defaults implementation into two separate
  methods: The default middleware stack and the serfer stage.
* This allows an end user to pretty much use the same default
  middleware setup with the added flexibility to stick in
  custom middleware at a key logical point.
  Eg. the parcel is Hashie::Mash for easier access/management,
  and the UUIDs have been properly set.
* The default middleware stack is just the timer, the masher,
  the uuid tagger and error handler.
* The serfer stage has the ParcelFreezer, the PolicyChecker
  and the serfer itself.
* The ParcelFreezer was moved to right before the PolicyChecker
  because the parcel should be static and frozen for the use
  by the policy checkers and the interactor (serf) itself.
  All modifications/enrichments should have been done by then
Adds jruby-head and ruby-head to TravisCI.

Details:
* Have travis-ci run the tests against the current
  ruby and jruby head.
Interactors MAY return headers, message version.

Details:
* Interactors MAY now return extra headers to be added to the parcels.
  But these headers are superceded by the reserved header values
  by the Serf system, and MAY be overwritten by other middleware.
* Reserves the 'version' header field as the semantic version of the
  Domain Object as represented by the message-kind pair in the given
  parcel. This is returned along with other headers.
* NOTE: We want the Serf Interactor API to be really focused on
  the Domain Object, thus the return result is still emphasizes
  kind and the message.
Interactors can return version embedded in the kind.

Details:
* Creates a shorthand way to let Interactor developers return
  the version information within the kind itself, without needing
  to use the extra headers field. A little more succinct.
* The embedded version info is processed by the serfer and moved
  into the proper parcel header 'version' field; updates the
  kind to just be the domain object kind, sans extra info.
Uuidable#coded_uuid_time gets Time from Coded UUID

Details:
* Returns a UTC Ruby Time Object given a valid Coded UUID.
* This is the Time used in the creation of the Type-1 UUID.
FIX: Uuidable spec, diff rubies return diff to_r.

Details:
* Time's to_r returns different rational numerator and denomiators
  depending on the ruby implementation, though the reduced numbers
  are equivalent.
* Changing the spec to just use the exact seconds and nanoseconds.
FIX: Uuidable time spec usec resolution.

Details:
* Looks like rubies have issues with nanosecond resolutions.
  We'll just have to settle with microsecond resolution for the
  coded uuids.
Adds hostname field to serf caught errors

Details:
* The error handling util adds the hostname to the error message
  to complement the ENV of the process. This is extra debug information.
* Updates the json schema of the caught error event with added
  field descriptions and forced the fields to be mandatory.
* updated the specs to support this.
Adds Serf::Errors::LoadFailure in SerfUp.

Details:
* Error messages were ambiguous and hard to track down when there
  are errors in the initial start up loading of Serfs.
* We add a LoadFailure error class, which nests the original
  exception. But it gives a message (hint) to where the
  error occurred. If it was in reading the serfup file, or
  in the construction in the serf blocks.
* Updates the serf specs; adds test data serf files.
Add Serf::Errors::LoadFailure to Loader Registry.

Details:
* We wanted to get the exact chain of errors when constructing
  a Serf to the root exception.
* Registry now wraps the "cause" exception with a Serf::Errors::LoadFailure
  error, tagged with the component name.
Moves version into Serf::VERSION constant.

Details:
* Serf::Version::STRING to Serf::VERSION to make it canonically
  follow how `bundle gem` creates the versioning.
Updates .gitignore to include more stuff

Details:
* Merges in default `bundle gem` .gitignore.
Version Bump to v0.15.0
Merge branch 'release/v0.15.0'

* release/v0.15.0:
  Version Bump to v0.15.0
  Updates .gitignore to include more stuff
  Moves version into Serf::VERSION constant.
  Add Serf::Errors::LoadFailure to Loader Registry.
  Adds Serf::Errors::LoadFailure in SerfUp.
  Adds hostname field to serf caught errors
  FIX: Uuidable time spec usec resolution.
  FIX: Uuidable spec, diff rubies return diff to_r.
  Uuidable#coded_uuid_time gets Time from Coded UUID
  Interactors can return version embedded in the kind.
  Interactors MAY return headers, message version.
  Adds jruby-head and ruby-head to TravisCI.
  Split Builder use_defaults into two parts.