improved mask notation & functionality (warning: will break with old mask args)

Mask now does not require each and every key to be declared and instead the inclusive {} notation can be used. 

Previously, If you wanted all the child keys from key "a" in {"a:{"b":1:"c"2} you would need to write {"a":{"b":null,"c":null}} as the rule. Now you can just write ("a":{}} to copy over all child values of "a"

Null is no longer a valid value for a mask key so this will break older configurations of the mask block.