Get JSON extension to work with Python 3 #1319
Python 3 fixes for ujson lib. All relevant tests pass (see below).

Tested on 64 bit OSX on Python 2.5, 2.6, 2.7, 3.1 & 3.2
Tested on 32 bit Ubuntu on Python 3.2

Apart from the define macros the handling for attribute / key names and the module initialisation code needed to be updated.

Some other notes:
1. I did not install scipy so the scipy tests failed but this should have no relevance for ujson
2. The `test_encodeBigEscape` in `test_ujson` seems to consume a lot of memory (or is more memory limited) in Python 3. It only passed in my Ubuntu VM when I upped its RAM to 2GB.
3. Several unicode tests now skipped for Python 2.6 (mostly the same as those skipped for 2.5). I didn't investigate this too much apart from checking that they failed with 2.6 for the original ujson library as well (they did).
4. `test_encodeListLongConversion` needs to pass `dtype=np.int64` to succeed for Python 3 on 32 bit. Under Python 3 numpy converts `int` to `np.int32` on 32 bit machines (whereas under Python 2 it's `long` -> `np.int64`).
5. I did not test on Windows :-/

Thanks for doing this. Have you/will you push the relevant parts upstream to ujson as well?
 Yeah there's a few things I've been planning to send upstream apart from Python 3 support. (Wes' Python 2.5 changes, better datetime encoding & support for higher double precision).
 Great!
 If you look more closely at `encodeBigEscape`, the input string is being interpreted differently on Py2 vs Py3:

`\xc3\xa5` is a single UTF8-encoded character in Python 2:

(Pdb) print input[:10]
ååååå

It has this simple JSON encoding:

```
(Pdb) ujson.encode(input[:10])
'"\\u00e5\\u00e5\\u00e5\\u00e5\\u00e5"'
```

Py3:

```
(Pdb) input[:10]
'Ã¥Ã¥Ã¥Ã¥Ã¥'
(Pdb) input[0]
'Ã'
(Pdb) input[1]
'¥'

(Pdb) ujson.encode(input[:10])
'"\\u00c3\\u00a5\\u00c3\\u00a5\\u00c3\\u00a5\\u00c3\\u00a5\\u00c3\\u00a5"'
```

As a result the JSON version is twice as long in Python 3. Encoding a length 20MM string is a bit excessive for a unit test IMHO (resulting in ~120MM length JSON string, taking up ~ 500M, why your VM was crapping itself). I'm just going to trim down the size of the string to 1MM from 10MM. It will also cause problems for our CI system if not (which runs on a Windows VM)
 That makes sense, thanks Wes.
