Add interimElement

Implemented the `$interimElementFactory` to create `$interimElement` services. Implemented `$materialDialog` and `$materialToast` using the `$interimElementFactory`.
I recommend using a modified initialization:

```js
var parent = $rootElement.find('body');
if (!parent.length) parent = $rootElement;

var deferred = [];
var hideTimeouts = [];
var elementStack = [];
var optionsStack = [];

var InterimElement = {
  defaults : angular.extend({
    parent: parent,
    onShow: onShow,
    onHide: onHide
  }, defaults || {});
};


// Move these to bottom of closure...

function onShow(scope, $el, options) {
  return $animate.enter($el, options.parent);
}

function onHide(scope, $el, options) {
  return $animate.leave($el);
}
```