Add mkdir to Chapel

Add the function mkdir to Chapel.  Mkdir takes in a directory name to create, the permissions to create it
with, and a boolean indicating if any missing parent directories should be created first.  There are two
versions: one which halts with an error message if one occurred, and one which merely returns the error
code via an out parameter.

Implementation details: the Chapel code calls out to a qio.c implementation.  If the caller has indicated it
wishes to create missing parent directories, then the function will attempt to do so by traversing the
provided path and attempting to create each parent directory as it goes, ignoring errors it may encounter
(as some of them will be "this directory already exists" errors, which we do not care about).  Then the
function will attempt to create the indicated directory, returning any errors it encounters in this last step.

8 tests accompany this feature, residing in test/io/lydia/mkdir/

I appreciate the simplicity of just doing mkdir() calls all the way down the path, but I think it can lead to a lower quality result when it fails and we have to tell the user why. Consider the case where we fail with errno=ENOSPC on an intermediate dir that already exists and thus fail to create it, but we keep going. We'll fail with errno=ENOENT on everything after that, because we failed to create that intermediate, but ENOSPC would actually be the best thing to return as the error code. So, I think we should actually go down the path doing stat() calls until we come to the first thing that doesn't exist, and then start doing mkdir() calls and give up as soon as we fail, returning the errno we saw. The other techniques I can think of all seem like they can lose error information one way or another.