Attempt to support both Python 2 and 3 under a single code-base

 - Significantly alter setup.py
   - Replace setuptools with distutils, which is buit-in for different versions of Python (I think)
   - Define a 'test' comand
   - Get version by exec'ing the targeted line from shapely/__init__.py
   - Read/write text files in text mode only (not 'b')
   - Hard-code packages (since find_packages() is not available)
   - Add a note "What is the case for", since it looks like a
     potential runtime error
 - In general, for Python versions 2.6 to 3.3:
   - Change 'print x' to 'print(x)'
   - Change 'raise Error, "Message"' to 'raise Error("Message")'
   - Add explicit 'list()' to some iterators, where 2to3 told me so;
     others probably lurking in hidden corners as 2to3 did not
     scan everything
 - In general, for Python 2.x:
   - Rename 'xslice' to 'slice', and make an alias
   - Rename 'next' to '__next__', and make an alias
 - In general, for Python 3.x:
   - Decode c_char_p outputs to 'ascii'
   - Encode c_char_p inputs from 'ascii'
   - Add 'reduce' from functools
 - I think the changes I made are not compatible with Python 2.5
   or before, so we may remove DLLs_x86_VC7 and related logic
 - shapely/speedups/__init__.py needed to remove tuple(), as errors
   are not iterable; furthermore it is unclear what
  'import_error_msg' does

Currently there are several failures on my setup:
 - Python 2.6: FAILED (failures=5) (all because I don't have Numpy)
 - Python 2.7: OK
 - Python 3.2: FAILED (failures=3, errors=3)
 - Python 3.3: FAILED (failures=9, errors=3) (most are because dict keys are ordered differently)

Unfinished work:
 - shapely/ops.py : not sure what to do here