Replace is_file() with the faster file_exists()
(where it makes sense)

Also:
 - Implemented caching of configuration arrays for smileys, foreign characters and doctypes.
 - Implemented cascading-style loading of configuration files (except for library configs, DB and constants.php).
diff --git a/system/core/Common.php b/system/core/Common.php
index 90cc5b3..258cd49 100644
--- a/system/core/Common.php
+++ b/system/core/Common.php
@@ -316,11 +316,11 @@
 	{
 		static $_mimes = array();
 
-		if (is_file(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'))
+		if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'))
 		{
 			$_mimes = include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php');
 		}
-		elseif (is_file(APPPATH.'config/mimes.php'))
+		elseif (file_exists(APPPATH.'config/mimes.php'))
 		{
 			$_mimes = include(APPPATH.'config/mimes.php');
 		}
diff --git a/system/core/Hooks.php b/system/core/Hooks.php
index 59759e0..17f6a02 100644
--- a/system/core/Hooks.php
+++ b/system/core/Hooks.php
@@ -81,11 +81,12 @@
 		}
 
 		// Grab the "hooks" definition file.
-		if (is_file(APPPATH.'config/'.ENVIRONMENT.'/hooks.php'))
+		if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/hooks.php'))
 		{
 			include(APPPATH.'config/'.ENVIRONMENT.'/hooks.php');
 		}
-		elseif (is_file(APPPATH.'config/hooks.php'))
+
+		if (file_exists(APPPATH.'config/hooks.php'))
 		{
 			include(APPPATH.'config/hooks.php');
 		}
diff --git a/system/core/Router.php b/system/core/Router.php
index 4755b37..bb0ce16 100644
--- a/system/core/Router.php
+++ b/system/core/Router.php
@@ -133,15 +133,16 @@
 		}
 
 		// Load the routes.php file.
-		if (is_file(APPPATH.'config/'.ENVIRONMENT.'/routes.php'))
-		{
-			include(APPPATH.'config/'.ENVIRONMENT.'/routes.php');
-		}
-		elseif (is_file(APPPATH.'config/routes.php'))
+		if (file_exists(APPPATH.'config/routes.php'))
 		{
 			include(APPPATH.'config/routes.php');
 		}
 
+		if (file_exists(APPPATH.'config/'.ENVIRONMENT.'/routes.php'))
+		{
+			include(APPPATH.'config/'.ENVIRONMENT.'/routes.php');
+		}
+
 		$this->routes = (empty($route) OR ! is_array($route)) ? array() : $route;
 		unset($route);