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