Make ext4mount create the mountpoint if necessary

This commit adds capability to create the $mountpoint directory if it
doesn't already exist.

We do this using an 'exec' resource rather than a 'file' resource,
because the caller may wish to set permissions on the mountpoint
directory *after* it has been mounted. ie this is an expected use
case:

    ext4mount {'foo':
        mountpoint   => '/mnt/foo',
        disk         => '/dev/sdb1',
        mountoptions => 'defaults',
    }

    file {'/mnt/foo':
        ensure  => directory,
        owner   => 'foo',
        group   => 'foo',
        require => Ext4mount['foo'],
    }

If we were to manage the mountpoint using a file resource, then the
above usage would fail as the two file resources would conflict. (Even
if they had different resource titles. We checked.)

There is some question as to whether the puppet 'mount' resource
should autorequire its mountpoint. There is a patch to make puppet do
this, but there are (legitimate) concerns preventing it being merged
at the moment:

https://groups.google.com/forum/?fromgroups#!msg/puppet-dev/WCXkmlUIt5c/dykvM-yHqHIJ