Simplify mutable_tree.has_changes() and update call sites.
* bzrlib/workingtree.py: (WorkingTree.merge_from_branch): Add a force parameter. Replace the check_basis() call by the corresponding code, taken the new 'force' parameter into account.
* bzrlib/tests/test_status.py: (TestStatus.make_multiple_pending_tree): Add force=True on supplementary merges.
* bzrlib/tests/test_reconfigure.py: (TestReconfigure): Add a test for pending merges.
* bzrlib/tests/test_msgeditor.py: (MsgEditorTest.make_multiple_pending_tree): Add force=True on supplementary merges.
* bzrlib/tests/blackbox/test_uncommit.py: (TestUncommit.test_uncommit_octopus_merge): Add force=True on supplementary merges.
* bzrlib/send.py: (send): Use the simplified has_changes(). Fix typo in comment too.
* bzrlib/reconfigure.py: (Reconfigure._check): Use the simplified has_changes().
* bzrlib/mutabletree.py: (MutableTree.has_changes): Make the tree parameter optional but retain it for tests. Add a pending merges check.
* bzrlib/bundle/apply_bundle.py: (merge_bundle): Replace the check_basis() call by the corresponding code.
* bzrlib/builtins.py: (cmd_remove_tree.run, cmd_push.run, cmd_merge.run): Use the simplified has_changes(). (cmd_merge.run): Replace the check_basis call() by the corresponding code (minus the alredy done has_changes() check).