#352 - modify `hasfocus` binding to use `activeElement` to determine the focus state. This avoids the binding causing the current element to "blur" when switching to another window.
#259 - Optimize compareArrays in preparation for adding support for move detection.

This new code is faster and smaller, and passes all specs.
#259 - compareArrays now finds and reports moved entries.

The returned "edit script" is backwards compatible because moved entries still include "deleted" and "added" entries. To indicate where they moved to/from, they will now also have a "moved" property.

Added and deleted entries will also have an "idx" property that's needed for the move detection code. We could remove the property afterwards, but that would hurt performance a bit (and add code). The only problem with the extra property is the need to modify the specs since they don't tolerate extra properties.

One of the existing specs already has an entry that triggers the "moved" detection, so I modified it to match the new behavior. Also I added a spec to demonstrate how compareArrays handles an array changed to completely new items.
#259 - Finally, modify setDomNodeChildrenFromArrayMapping to handle moved items.

Some other minor changes to setDomNodeChildrenFromArrayMapping benefit size and performance slightly.
Modified an existing spec to show that moved items don't trigger any new mapping or callback calls.
Added $element pseudo-variable that allows accessing the current element (and through it the DOM tree).
Retain Firefox 2 support
#352 - Prevent hasfocus causing a loss of focus in all browsers when changing tabs/windows by setting a flag that prevents it from calling 'blur()' on the element when it loses focus.
Merge branch '352-hasfocus-keeps-focus'
Fix merge error
#259 - Change idx to index in compareArrays. Set a limit to the comparisons in the move detection algorithm.
Made chaining possible on writable computed's
#489 - spec for chained computed writes
#316 - isWriteableValue will match any string that ends with a property accessor.
In preProcessBindings, ensure that property writers don't cause an error if the value isn't actually writable (because it was a false-positive match).
Minor spec tweak to ensure all assertions are run on old browsers (without Object.keys) too
"foreach" and "template" bindings accept "as" option to define alias for iteration variable (for #465)
Rephrase specs so they can pass on IE7 too
support beforeMove and afterMove callbacks in setDomNodeChildrenFromArrayMapping
fix specs randomly failing in Chrome
minor optimizations to setDomNodeChildrenFromArrayMapping