Create custom duck assertions for chai

Allows you to assert the following:
expect(someDomElement).to.be.visible;
expect(someDomElement).to.be.hidden;
expect(someDomElement).to.be.focused;
expect(someDomElement).to.be.disabled;
expect(someDomElement).to.be.enabled;
expect(someDomElement).to.be.removed;
// also the 'not' version of each, e.g.
expect(someDomElement).to.not.be.enabled;

To use the duck-chai plugin in your tests, write `chai.use(duckChai);`
Stub out $scope.$parent recursively; dom.element enhancements;

- $scope.$parent is now stubbed recursively in case you need to stub properties on it (even .$parent.$parent). Without breaking the connection to the duck $rootScope, your stubs are merged with the real duck $parent.
- You can now pass a dom.element into interactWith (in addition to the already support css selector string). This is good if you've already stored a reference to your element into a variable. e.g. `dom.interactWith(someButtonReference);`
- You can now interact with any non-input object as long as it has an ng-click attribute. e.g. `dom.interactWith(someDivWithNgClick);`
- dom.element objects now have isRemoved() to see if they are still connected to the duck dom. Sometimes when items are added and removed (e.g. with ng-if) they still exist in memory but are not in the dom. 
- dom.element now extends the .find method so you can search for descendant elements of a dom.element object and it will return another dom.element element. Previously it returned a regular jquery element, so you could access the various dom.element helpers like isHidden, isVisible, etc. e.g. `dom.element(".someDiv").find(".someChildDiv");` now returns a dom.element object.
Allow cacheTemplates to accept html strings

You can now pass in html strings as a cached template (in addition to the real template path that is currently supported). This is great for stubbing templates that are not being directly tested. e.g. 
```js
builder.withDependencies(appLevelDependencies)
      .cacheTemplates(myApp, {
              "/path/being/requested/from/app.html": "/real/path/to/template.html",
              "/another/path.html": '<div class="template-stub"></div>'
      })
```
Merge pull request #5 from timkindberg/master

Duck Chai; $scope.$parent; dom.element enhancements; html strings for cached templates;