MacOS X: Enable 4-way universal builds

This patch adds a new configure argument on OSX:
        --with-universal-archs=[32-bit|64-bit|all]

When used with the --enable-universalsdk option this controls which
CPU architectures are includes in the framework. The default is 32-bit,
meaning i386 and ppc. The most useful alternative is 'all', which includes
all 4 CPU architectures supported by MacOS X (i386, ppc, x86_64 and ppc64).

This includes limited support for the Carbon bindings in 64-bit mode as well,
limited because (a) I haven't done extensive testing and (b) a large portion
of the Carbon API's aren't available in 64-bit mode anyway.

I've also duplicated a feature of Apple's build of python: setting the
environment variable 'ARCHFLAGS' controls the '-arch' flags used for building
extensions using distutils.
diff --git a/Lib/test/test_macos.py b/Lib/test/test_macos.py
new file mode 100644
index 0000000..e65b174
--- /dev/null
+++ b/Lib/test/test_macos.py
@@ -0,0 +1,43 @@
+import unittest
+import MacOS
+import Carbon.File
+from test import test_support
+import os
+
+TESTFN2 = test_support.TESTFN + '2'
+
+class TestMacOS(unittest.TestCase):
+
+    def testOpenRF(self):
+        try:
+            fp = open(test_support.TESTFN, 'w')
+            fp.write('hello world\n')
+            fp.close()
+
+            rfp = MacOS.openrf(test_support.TESTFN, '*wb')
+            rfp.write('goodbye world\n')
+            rfp.close()
+
+
+            fp = open(test_support.TESTFN, 'r')
+            data = fp.read()
+            fp.close()
+            self.assertEquals(data, 'hello world\n')
+
+            rfp = MacOS.openrf(test_support.TESTFN, '*rb')
+            data = rfp.read(100)
+            data2 = rfp.read(100)
+            rfp.close()
+            self.assertEquals(data, 'goodbye world\n')
+            self.assertEquals(data2, '')
+
+
+        finally:
+            os.unlink(test_support.TESTFN)
+
+def test_main():
+    test_support.run_unittest(TestMacOS)
+
+
+if __name__ == '__main__':
+    test_main()