Implement auto inflation/deflation in the storage daemon.

This code implements automatic deflation (compression)
of data read or written to a device and automatic inflation
(uncompression) of data written or read from a device.

This allows you to do the following:

- Compress data on the FD send it to SD and write it to the device uncompressed.
- Send data uncompressed from the FD to the SD and write it to the device compressed.
- Read compressed data from a device and send it as uncompressed data to the FD.
- Read uncompressed data from a device and send it as compressed data to the FD.

Fixes #187: Implement auto inflation/deflation in storage daemon.
Implement NDMP enhancements.

Currently we only allow all or nothing restores for the NDMP backup and restore.

This code implements the first set of changes needed to perform filelevel
based restore of NDMP backups.

The following things are implemented:

- Store the FHDB NDMP data into the backup catalog.
- Allow the user to select the info on restore
- Pass the file selection from the NDMP DMA to the NDMP data agent so
  it knows what to restore.

As we currently don't allow seeks on the NDMP stream with the NDMP tape agent
implemented in the Bareos Storage Daemon we cannot add the so called DAR
(Direct Access Recovery) but as part of this storing of the FHDB information
in the backup catalog we should store the DAR offset too so when we either
support native NDMP tape agents (currently not implemented) or when the Bareos
Storage Daemon allows seeking in the NDMP stream we have that information.

This code works when using the restore functions in bconsole. Restores via
the BVFS method currently don't work and need more work. This means that restores
via BAT don't work as that uses BVFS.

Fixes #188: Implement NDMP enhancements.
Never memset the dcr->rec record.

In a try to not use a local DEV_RECORD struct we started using the
dcr->rec for everything. But this DEV_RECORD is allocated using
new_record and as such has memory allocated as its data pointer
so we should no longer memset the dcr->rec pointer othewise we
clear the data pointer.
Tweak code so we don't loose the record data pointer.

By using the dcr->rec we should preserve the rec->data pointer
as new_record allocates memory for that and we overwrite it
in the append data and ndmp write function. Also as the dcr->crec
always has a data pointer pointing to a converted internal buffer
we don't need a record there with a data pointer allocated so added
an extra argument to new_record that signals that we don't want to
have a data pointer allocated. The default of this argument is true
(protos.h) so we don't need to change all calls of that function.

Also fixed some warnings from the compiler.
Revert "Tweak code so we don't loose the record data pointer."

This reverts commit 7d467d97befbda7439ab5d26a4a4c7aeda2497c8.
Revert "Never memset the dcr->rec record."

This reverts commit b4960576d5bec7d02f25c89967cfbf9b52c67a0d.
Revert "Implement auto inflation/deflation in the storage daemon."

This reverts commit 04759509766b6a072fb524334511d7d0ccf47c06.
Tweak README.md for new branches.
Tweak branch naming.