Add FreeBSD support to cloudbaseinit

In order to support FreeBSD in cloudbaseinit, the patch changes the
following:

  * implements a specific osutils class for FreeBSD.

  * the osutils dispatching is done using `platform.system`.
    This offers a better granularity level than `sys.platform` or
    `os.name`.

  * certain plugins can work unchanged on both Windows and FreeBSD.
    In order to have a consistent place for such common plugins,
    a new location is added, 'plugins/common'.

  * refactor filexecutils.py and userdatautils.py, by having a common
    command execution interface, in the new 'executil.py'.

This patch is work in progress.