add new class Sliding, and some tests
improve class Sliding

- new function to count inversions
- new internal structures for storing id and positions
rename arg2pos to toPos; add handlers to slide and shuffle
rename pos or id to posid
remove old code
move origin out from Sliding
mv countInversions to _countInversions as private method
refactor slide
add two map methods
add SimpleSliding
rewrite demo based on the new interface
update README.md
remove img
fix history list
add small same square detection
cleanup and update puzzle.js
update LICENCE date