Revert "Remove use of setuptools Feature. Fixes #23"

This reverts commit b74cfd1f7ab5a82b2d0bf96f750998bc66324034.
diff --git a/setup.py b/setup.py
index dbfeef3..96d3d92 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
 import os
 import sys
-from setuptools import setup, Extension
+from setuptools import setup, Extension, Feature
 from distutils.command.build_ext import build_ext
 from distutils.errors import CCompilerError, DistutilsExecError, \
      DistutilsPlatformError
@@ -13,6 +13,14 @@
 is_pypy = hasattr(sys, 'pypy_version_info')
 
 
+speedups = Feature(
+    'optional C speed-enhancement module',
+    standard=True,
+    ext_modules = [
+        Extension('markupsafe._speedups', ['markupsafe/_speedups.c']),
+    ],
+)
+
 ext_errors = (CCompilerError, DistutilsExecError, DistutilsPlatformError)
 if sys.platform == 'win32' and sys.version_info > (2, 6):
     # 2.6's distutils.msvc9compiler can raise an IOError when failing to
@@ -53,8 +61,9 @@
 
 
 def run_setup(with_binary):
-    ext = Extension('markupsafe._speedups', ['markupsafe/_speedups.c'])
-    ext_modules = [ext] if with_binary else []
+    features = {}
+    if with_binary:
+        features['speedups'] = speedups
     setup(
         name='MarkupSafe',
         version='0.23',
@@ -81,7 +90,7 @@
         test_suite='markupsafe.tests.suite',
         include_package_data=True,
         cmdclass={'build_ext': ve_build_ext},
-        ext_modules=ext_modules,
+        features=features,
     )