Allow masking of files.

This PR is based on @benib's PR #15 to allow masking files. However there is small changes. 

This allows recursivly created mask arrays such as

```js
options.mask: [
    "file.json",
    { foo: true },
    [
        "a.json",
        "b.json"
    ]
]
```

I also changes the the option `maskAllowUnknownOnFirstLevel` to `maskAllowLevel`. It is no longer a `boolean` but is an integer now with `0` being the equivalent to not allowing any level. `1` allows everything on the first level (that was the equivalent to `true`) and so forth. This allows a more granular control with no extra overhead in the code.

@benib let me know if there is something you don't like etc.