/**
  * Resets the config
  *
  * @param bool    $hard_reset    if TRUE, sets EE_CONFig back to its original settings in the database. If FALSE
  *                               (default) leaves the database alone, and merely resets the EE_Config object to
  *                               reflect its state in the database
  * @param boolean $reinstantiate if TRUE (default) call instance() and return it. Otherwise, just leave
  *                               $_instance as NULL. Useful in case you want to forget about the old instance on
  *                               EE_Config, but might not be ready to instantiate EE_Config currently (eg if the
  *                               site was put into maintenance mode)
  * @return EE_Config
  */
 public static function reset($hard_reset = false, $reinstantiate = true)
 {
     if ($hard_reset) {
         self::$_instance->_addon_option_names = array();
         self::$_instance->_initialize_config();
         self::$_instance->update_espresso_config();
     }
     if (self::$_instance instanceof EE_Config) {
         self::$_instance->update_addon_option_names();
     }
     self::$_instance = null;
     //we don't need to reset the static properties imo because those should
     //only change when a module is added or removed. Currently we don't
     //support removing a module during a request when it previously existed
     if ($reinstantiate) {
         return self::instance();
     } else {
         return null;
     }
 }