fixes to dotSet & dotGet which allow getting / setting deep paths that don't exist