code: function _gpfRequireAllocate(parentContext, options) {
          var context = Object.create(parentContext),
              // cache content is shared but other properties are protected
              require = {};
          require.define = _gpfRequireDefine.bind(context);
          require.resolve = _gpfRequireResolve.bind(context);
          require.configure = _gpfRequireConfigure.bind(context);
          if (options) {
              require.configure(options);
          }
          return require;
      }
docs: Allocate a new require context with the proper methods
  
  @param {Object} parentContext Context to inherit from
  @param {gpf.typedef.requireOptions} [options] Options to configure
  @return {Object} Containing {@link gpf.require.define}, {@link gpf.require.resolve} and {@link gpf.require.configure}
  @since 0.2.2