Make rs_delta_begin() use rs_signature_check() and work for slack deltas.
Make rs_delta_begin() use rs_signature_check() and work for slack deltas.

Make rs_delta_begin() work for "slack deltas" when passed a NULL
signature. With no signature it behaves like the old file was empty
and produces a delta containing the whole new file.

When a signature is provided, use rs_signature_check() instead of all
the manual checking. Use an assert to ensure that the hashtable has
been built. Only an invalid client program could provide a bad
signature at this point, so assert checking should be sufficient here.

This also means rs_delta_begin() can no longer fail or return NULL,
which we failed to check for in places like whole.c.

sourcefrog/librsync,sourcefrog/librsync,dbaarda/librsync,yrgoldteeth/librsync,librsync/librsync,dbaarda/librsync,yrgoldteeth/librsync,dbaarda/librsync,dbaarda/librsync,sourcefrog/librsync,librsync/librsync,librsync/librsync,sourcefrog/librsync,librsync/librsync,yrgoldteeth/librsync,yrgoldteeth/librsync