fedup.util: improved subprocess commands

This adds a new function, call_output, which runs the given program and
returns a tuple: (retcode, stdout, stderr). It has a few advantages:

- CalledProcessError will always have retcode and output attributes.
- The command being run will always be logged.
- STDOUT and STDERR are always captured (won't leak onto screen)

It also implements the other subprocess commands (call, check_call,
check_output) using call_output:

call:         return retcode
check_call:   return retcode, raise CalledProcessError if retcode != 0
check_output: return stdout, raise CalledProcessError if retcode != 0
fedup: treat --network VERSION as a float, not int

In our distant past and possible future, distro version numbers are
floating point numbers. We should handle that case.