add diff for arrays

use the patience algorithm for diffing arrays