code: function put(obj, key, val, immutable) {
      if (immutable)
          return _put(assign({}, obj), key, val);
      return _put(obj, key, val);
  }
docs: Put a value to key. If the value is not currently an array it converts.
  
  @param obj the object to push value to.
  @param key the key or array of keys to be joined as dot notation.
  @param val the value to be pushed.
  @param immutable when true update in immutable mode.