add differential bcmap compression code, cleanup difflib