* Updated Karma and Jasmine versions
* Added DOMObserver class. Supports promise-based testing of DOM changes
Update asynchronous test specs to use promises or done() instead of waitsFor/runs
* Modified ActionCapability to duplicate context object properties as own properties for better object equality comparisons
* Global find + replace to fix syntax issues
* Fixed various issues caused by non-deterministic runtime order of tests in Jasmine 3. Fixed issues caused by changes to determination of object equality
* Addressed review comments
* Resolved merge conflicts with master
* Fixed style errors
* Use spy.calls.count() instead of manually tracking
Clarify naming of method for retrieving contextual location of a domain
object.
Default behavior for objects that do not have a context is to return
undefined. Note that default behavior is not specified and could change
if needed.
Use the parent id as the location for a model.
This greatly reduces the recursive work that must be done
during move operations to keep the location accurate.
Additionally, the locationService now implements a method
`persistLocation` which can be used to persist the current object
location as it's original location.
DomainObjects with a context capability also gain a LocationCapability.
This capability allows you to determine the location of the current
instance of a domain object, and also provides methods for determining
if the current instance of a domain object is a link, or if it is an
original.