code: function pathSet(object, paths, newValue) {
          var pathArray = (angular.isArray(paths)) ? paths : (paths || "").split(".");
          var value = object;
          var lastIndex = pathArray.length - 1;
          angular.forEach(pathArray, function (name, idx) {
              var next = value[name];
              if (idx >= lastIndex || !angular.isObject(next)) {
                  next = (idx < lastIndex) ? {} : newValue;
                  value[name] = next;
              }
              value = next;
          });
          return value;
      }
docs: Navigates the given set of paths in turn on the source object
  and updates the last path value to the given newValue
  
  @method pathSet
  @for Core
  @static
  @param {Object} object the start object to start navigating from
  @param {Array} paths an array of path names to navigate or a string of dot separated paths to navigate
  @param {Object} newValue the value to update
  @return {*} the last step on the path which is updated