Bug 562676: Push efficiency - report missing objects only.

Fix with tests.
formatting fixes, trailing whitespace, unused imports.
Update NEWS.
Some more formatting fixes.
Merge push efficiency fixes from Artem Tikhomirov.
Replace docstring with comments; breaks epydoc.
Use indentation in config file consistent with C Git.

Bug: https://bugs.launchpad.net/dulwich/+bug/1031356
Add support for mergetags.

Bug: https://bugs.launchpad.net/dulwich/+bug/963525
Simplify parsing for multi-line fields.
Fix PEP8 compatibility of setup.py.
web: Some formatting fixes.
Fix URL handling so that git+ssh:// is treated like git's ssh:// * fixed unit test as well

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
test_client: Put separate tests into their own methods.
Make patch.write_object_diff suppress diff for binary files

For commits with lots of binary files or large binary files, the
memory usage in write_object_diff could get quite nasty.

Moreover, it is not really interesting to see the binary level
diff for binary files.

This change makes write_object_diff display a line saying
"Binary files a/<old_path> and b/<new_path> differ" instead
of the unified diff for files that it deems "binary" like, using
the same strategy used in the `git diff` command [1].

1. http://git.kernel.org/?p=git/git.git;a=blob;f=xdiff-interface.c#l197

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
Added tests for write_object_diff with binary files

Added tests for patch.write_object_diff's binary comparison
behaviour.

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
Update NEWS, provide way to force diffing of binary files.
Update NEWS for get_transport_and_path relative path fix.
add honor_filemode flag to build_index_from_tree

Signed-off-by: Mark Mikofski <mark.mikofski@sunpowercorp.com>
Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
Add support for honoring core/filemode when building trees.
Preserve the order of configuration files.

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>