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).