Separate backup

Recommended to review by commit as I try to structure it as refactoring goes. My intention is also to use it as tutoring material for some refactoring presentation.
In general, I feel that the problem here is that the approach we use in Yast does not feel object oriented, so doesn't completely fit into the Ruby mechanisms. In an object oriented API I would expect to do things like

```Ruby
dev = Device.find_by_kernel("sda")
puts "Backing up #{dev.uuid} device which has #{dev.partitions.size} partitions"
dev.backup_boot_record
```
Just a silly example, but we don't usually have objects mapping the "real world" with classes like Device, Partition and so on. Same happens in, for example, yast-services-manager in which we do things like ```Service.Enable("vnc")``` instead of ```Service.find_by_name("vnc").enable```.

But that's going way too far now and it's a discussion which is completely out of the scope of this pull request.