config->site_url() optimizations

- direct access to config array, instead of item() calls
- the string cast is just in case 'url_suffix' would be set to false or null; the function produces the same results without this cast, but it leads to a robuster code, as false and null are sanitized and skip the suffix insertion code
- altered conditional structure: if no suffix, skip the appending of an empty string to $uri
diff --git a/system/core/Config.php b/system/core/Config.php
index 8250b5b..9e6d2cb 100644
--- a/system/core/Config.php
+++ b/system/core/Config.php
@@ -245,15 +245,18 @@
 
 		if ($this->item('enable_query_strings') === FALSE)
 		{
-			$suffix = ($this->item('url_suffix') === FALSE) ? '' : $this->item('url_suffix');
+			$suffix = isset($this->config['url_suffix']) ? (string) $this->config['url_suffix'] : '';
 
-			if ($suffix !== '' && ($offset = strpos($uri, '?')) !== FALSE)
+			if ($suffix !== '')
 			{
-				$uri = substr($uri, 0, $offset).$suffix.substr($uri, $offset);
-			}
-			else
-			{
-				$uri .= $suffix;
+				if (($offset = strpos($uri, '?')) !== FALSE)
+				{
+					$uri = substr($uri, 0, $offset).$suffix.substr($uri, $offset);
+				}
+				else
+				{
+					$uri .= $suffix;
+				}
 			}
 
 			return $this->slash_item('base_url').$this->slash_item('index_page').$uri;