Reset loaded files arrays in the Loader so the 404_override controller can access autoloaded libraries.

If a controller exists but a method is not found the current $CI
instance is unset and a new one is created for the 404 override
controller. Any autoloaded libraries will not be available to the 404
override controller because the Loader sees them as already have been
loaded. To fix this we need to reset the loader. I implemented it via an
initialize function that resets the loaded files arrays and then calls
the autoloader. This also simplifies things in CI_Controller because it
only has to call one loader function instead.
diff --git a/system/core/Loader.php b/system/core/Loader.php
index 7c8b298..2b36c1c 100644
--- a/system/core/Loader.php
+++ b/system/core/Loader.php
@@ -62,17 +62,22 @@
 	// --------------------------------------------------------------------
 	
 	/**
-	 * Set _base_classes variable
+	 * Initialize the Loader
 	 *
 	 * This method is called once in CI_Controller.
 	 *
 	 * @param 	array 	
 	 * @return 	object
 	 */
-	public function set_base_classes()
+	public function initialize()
 	{
+		$this->_ci_classes = array();
+		$this->_ci_loaded_files = array();
+		$this->_ci_models = array();
 		$this->_base_classes =& is_loaded();
-		
+
+		$this->_ci_autoloader();
+
 		return $this;
 	}
 
@@ -1020,23 +1025,19 @@
 	 * The config/autoload.php file contains an array that permits sub-systems,
 	 * libraries, and helpers to be loaded automatically.
 	 *
-	 * This function is public, as it's used in the CI_Controller class.  
-	 * However, there is no reason you should ever needs to use it.
-	 *
 	 * @param	array
 	 * @return	void
 	 */
-	public function ci_autoloader()
+	private function _ci_autoloader()
 	{
 		if (defined('ENVIRONMENT') AND file_exists(APPPATH.'config/'.ENVIRONMENT.'/autoload.php'))
 		{
-			include_once(APPPATH.'config/'.ENVIRONMENT.'/autoload.php');
+			include(APPPATH.'config/'.ENVIRONMENT.'/autoload.php');
 		}
 		else
 		{
-			include_once(APPPATH.'config/autoload.php');
+			include(APPPATH.'config/autoload.php');
 		}
-		
 
 		if ( ! isset($autoload))
 		{