fix broken links on title screen from tumblr
fixed focus stuff - should've used window rather than document
bop
introducing an error message broke
http://www.puzzlescript.net/editor.html?hack=7057244
so changing to warning message
test cases
fixed this bug -
http://www.puzzlescript.net/play.html?p=9114813

silly old bug
use a Rule class to make compiler/engine less scary.

This is still efficient since JS JITs are smart enough to not actually
create a dictionary for every class, but use hidden classes instead.

Test running time is unchanged.
add a CellPattern class to replace the heterogeneous cellrow lists
performance uneffected, all tests pass.
remove isLate and emptyRhs from Rule
add toJSON methods to Rule and CellPattern for standalone builds
fold propagateMovements/propagateLateMovements into one function
add methods on Rule/RulePattern, fold cell matching into RulePattern.matches
don't redraw for every mouse movement
add CellReplacement to combine lhs/rhs. minor perf improvement
refactor cell replacement into CellPattern, convert parseInt to constants (for perf)
make tests more flexible by checking for object names instead of bitmasks
rewrite replacements in terms of 'bits to clear' and 'bits to set'
use inplance operations for clarity
build CellReplacement Set/Clear bitmasks directly
fix bug where invalidated matches weren't properly skipped