Implement truncate support for output streams

Backends receive a TRUNCATE message which contains a size parameter.
Truncation is signaled with a TRUNCATED message (which contains no other
useful information).

In more detail:
Add a new dbus method, OpenForWriteFlags, which has a flags parameter to
implement can_seek and can_truncate.  These flags are used in
GDaemonFileOutputStream.  Compatability with old clients is maintained.
Implement the can_truncate and truncate_fn GDaemonFileOutputStream
methods.
Add two new message types to the daemon socket protocol:
    G_VFS_DAEMON_SOCKET_PROTOCOL_REQUEST_TRUNCATE
    G_VFS_DAEMON_SOCKET_PROTOCOL_REPLY_TRUNCATED
Add a new job type, GVfsJobTruncate.
Add two new methods to GVfsBackend which backend classes can implement:
truncate and try_truncate

https://bugzilla.gnome.org/show_bug.cgi?id=573837
localtest: Implement truncate support for output streams

https://bugzilla.gnome.org/show_bug.cgi?id=573837
Require libsmbclient from Samba 3.4.0 or higher

Also remove the old libsmb-compat.h header file.

https://bugzilla.gnome.org/show_bug.cgi?id=573837
smb: Implement truncate support for output streams

https://bugzilla.gnome.org/show_bug.cgi?id=573837
sftp: Implement truncate support for output streams

https://bugzilla.gnome.org/show_bug.cgi?id=573837
afp: Implement truncate support for output streams

https://bugzilla.gnome.org/show_bug.cgi?id=573837
afc: Implement truncate support for output streams

https://bugzilla.gnome.org/show_bug.cgi?id=573837
mtp: Implement truncate support for output streams

https://bugzilla.gnome.org/show_bug.cgi?id=573837
gphoto2: Implement truncate support for output streams

https://bugzilla.gnome.org/show_bug.cgi?id=573837
gphoto2: Don't release the device multiple times

If an error occurs during mounting, don't explicitly release the device
because it is released anyway during finalize().

https://bugzilla.gnome.org/show_bug.cgi?id=706224