Major refactoring of the module.

- Remove duplicated getInheritedData function from angular
  and use directive controllers "require" feature instead to
  make use of inherited controllers.
- Use "require" in ngMultiTransclude to optionally accept
  either ngMultiTemplate or ngMultiTranscludeController
  as controllers (throw an exception if at least one is
  not present).
- Change ngMultiTransclude to simply register with either
  of its required controllers; no longer leak any
  implementation details from those controllers.
- Share the same controller function for ngMultiTranscludeController
  and use $transclude to minimize transclusion code and avoid
  any need for link functions.
Remove unnecessary 'self' var.
Ensure the controller that is deepest in the DOM is used to transclude.
Ensure _toTransclude is set before removing.
Move things around a tiny bit; limit number of times we walk the DOM when determining which controller is deepest.
Fix mismatching brace spacing style; fix comment typo.
Merge branch 'simplify-refactor' cleaning up some needless duplication; thanks @dlongley!
Bump version.