code: function instance(input) {
    return str(input)
      || fn(input)
      || obj(input)
      || raise(input);
  }
docs: input is String    - instnace(global[input] || require(input))
  input is Function  - `new input`
  input is Object    - return input
  else raise hell
  
  @param {Mixed} input
  @returns {Object}
  @api public