Move mbstring/iconv configuration and MB_ENABLED, ICONV_ENABLED out of CI_Utf8::__construct()

Also, use mb_substitute_character() instead of ini_set()
diff --git a/tests/mocks/core/utf8.php b/tests/mocks/core/utf8.php
index 9dda43a..30b78ad 100644
--- a/tests/mocks/core/utf8.php
+++ b/tests/mocks/core/utf8.php
@@ -3,35 +3,14 @@
 class Mock_Core_Utf8 extends CI_Utf8 {
 
 	/**
-	 * We need to define several constants as
-	 * the same process within CI_Utf8 class constructor.
+	 * We need to define UTF8_ENABLED the same way that
+	 * CI_Utf8 constructor does.
 	 *
 	 * @covers CI_Utf8::__construct()
 	 */
 	public function __construct()
 	{
 		defined('UTF8_ENABLED') OR define('UTF8_ENABLED', TRUE);
-
-		if (extension_loaded('mbstring'))
-		{
-			defined('MB_ENABLED') OR define('MB_ENABLED', TRUE);
-			mb_internal_encoding('UTF-8');
-			ini_set('mbstring.substitute_character', 'none');
-		}
-		else
-		{
-			defined('MB_ENABLED') OR define('MB_ENABLED', FALSE);
-		}
-
-		if (extension_loaded('iconv'))
-		{
-			defined('ICONV_ENABLED') OR define('ICONV_ENABLED', TRUE);
-			iconv_set_encoding('internal_encoding', 'UTF-8');
-		}
-		else
-		{
-			defined('ICONV_ENABLED') OR define('ICONV_ENABLED', FALSE);
-		}
 	}
 
 	public function is_ascii_test($str)