Initial backupmanager and section in the control panel

Signed-off-by: Gonzalo Odiard <godiard@sugarlabs.org>
Support volumes backup

Add Backup and Restore classes. These classes implement
backup and restore mechanisms to be used with external
volumes, such as memory sticks.

Add helpers functions to calculate pre-conditions such
as available space, and datastore size.

Comply with interfaces defined by Martin Abente and
Gonzalo Odiard, for sugar upstream backup GUI.

Comply with pep8.

VERSION 2: Added volumes and checkpoints selection logic.

Signed-off-by: Martin Abente Lahaye <tch@sugarlabs.org>
Add UI interaction to the backend

Options are displayed to the user if requested by the backend,
and a progressbar is displayed while the backup/restore is done.

The frontend and backend are separated to make easier create alternative
implementations.

A property is_cancellable is added to the SectionView,
because the restore can't be cancelled, and need modify the toolbar
buttons according to that.

Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
Better naming of the generated backup file

The file is named based in the xo serial number, or user name if
is not available, and the date. The name is checked for invalid chars.

Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
Save metadata in generated backup file

Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
Show a start message earlier

The message is shown before the initial testing
Add mime type for backup files
Save the mime type in the generated backup file metadata

Signed-off-by: Gonzalo Odiard <godiard@sugarlabs.org>
Add tests

Signed-off-by: Gonzalo Odiard <godiard@sugarlabs.org>
Solve the flow of text with long messages in backup/restore cp
Merge pull request #284 from godiard/backup_feature-try5

Backup feature try5