Add a contextmanager to create and remove sparse tempfiles.

with sparsetmpfile("mytest", Size("100 MiB")) as path:
  do_stuff(fn=path)

It creates a sparse temporary file with the specified size and yields its
full path on __enter__, then unlinks the file on __exit__.
Add a DiskFile class for testing partitioning code as a non-root user.

There seems to be some special treatment from parted (first free sector
is reported as 32) but the main purpose is to test partitioning code
without committing the changes to disk. It may be perfectly viable to
commit to these devices, but I haven't tried it yet. My intention is to
write unit tests for things like partition allocation -- which require
parted Device and Disk instances -- without requiring root access.
Add a couple of tests for blivet.partitioning.DiskChunk.
Add some tests for blivet.partitioning.addPartition.