code: public static Map assoc(final Map map, final Object[] path, final Object value) {
          return assoc(map, map.getClass(), path, value);
      }
docs: Associates new value in map placed at path. New nodes are created with same class as map if needed.
  @param map subject original map
  @param path nodes to walk in map path to place new value
  @param value new value
  @return original map