Optimize jsonpatch.make_patch for lists. Fixes #24

This optimization tries to work only with really different lists
subsequences and trying to preserve as much as possible common ones.
This reduces overall of generated operations since now it's possible
to simple insertions. Also, it converts pairs of remove-add operations
into single replace (if target path is the same) or move (if target
value is the same).