Redesign core directives.

- Core "stackable" directive has no template, doesn't do
  transclusion, etc. only provides a controller. This controller
  code part of a directive so that it's easy for other directives
  to require it and get access to it; there may be a better way
  to do this but it's unclear if the right controller instances,
  etc. would be made available to directives inside of stackables
  or if it would complicate those directives (having to optionally
  require a modal or popover or other stackable container directive
  and then guess which one to use to close the stackable/use other
  controller API calls).
- Always move the dialog element to the body to make z-indexing
  easier.
- Require stackable directive in stackable-modal and stackable-popover
  and restrict them to use as elements.