Add get_selections() and set_selections() for dpkg.

This module will enable to freeze a package at a certain version, with the "hold" state.
Add TODO, amend later... FIXME.
Merge my dpkg-selections branch with develop.

Resolved conflicts in modules/apt.py.
Fix merge mistake.

urllib2 and json is part of standard Python.
Use yaml.safe_load()
Add another TODO
Use code-block

As per @terminalmage suggestion.
Added mknod functionality for fifo pipes, block devices, character devices, and ancillary functions to the salt file module.
Merge remote-tracking branch 'upstream/develop' into feature_mknod
further doc tweaks
Moved operation section nearer the top to give a high level overview
before diving in.
Fix mine.send

For functions that use arguments, mine.send is broken due to bugs in
salt.utils.arg_lookup() and salt.utils.format_call(). This commit
restores proper functionality.
Remove unused variables
subprocess.Popen takes a PIPE for stdin

http://docs.python.org/2/library/subprocess.html#subprocess.Popen.communicate

   Note that if you want to send data to the process’s stdin, you need to
   create the Popen object with stdin=PIPE.
Parse backing file from qemu-image info output

I'm deplying thin clones of VM's using the qcow2 disk format.  One of the lines
of the qemu-image info command reports the filename of the base disk.

   $ qemu-img info /work/aantony/kvm/ajith-sl6-2.qcow2
   image: /work/aantony/kvm/ajith-sl6-2.qcow2
   file format: qcow2
   virtual size: 20G (21474836480 bytes)
   disk size: 1.0G
   cluster_size: 65536
   backing file: ./ajith-sl6-base-image.qcow2 (actual path: /work/aantony/kvm/./ajith-sl6-base-image.qcow2)

This last line is breaking the yaml parser:

   backing file: ./ajith-sl6-base-image.qcow2 (actual path: /work/aantony/kvm/./ajith-sl6-base-image.qcow2)

   ScannerError: mapping values are not allowed here
     in "<string>", line 6, column 51:
        ... l6-base-image.qcow2 (actual path: /work/aantony/kvm/./ajith-sl6- ...

This change aims to at least parse that line.

Results look like this:

  ----------
    ----------
    ajith-sl6-2:
        ----------
        cpu:
            1
        cputime:
            6383750000000
        disks:
            ----------
            hda:
                ----------
                backing file:
                    /work/aantony/kvm/./ajith-sl6-base-image.qcow2
                cluster_size:
                    65536
                disk size:
                    1.0G
                file:
                    /work/aantony/kvm/ajith-sl6-2.qcow2
                file format:
                    qcow2
                image:
                    /work/aantony/kvm/ajith-sl6-2.qcow2
                virtual size:
                    20G (21474836480 bytes)
     <...>
Merge remote-tracking branch 'upstream/develop' into feature_mknod
Added additional mknod logic and a dictionary return object
Prefix for KVM/QEMU is 52:54:00
Make gen_mac() more robust.
Use the "PRIVATE" OUI by default.