Py2&3 port

Initial port is done. Tests are passing against 2.7 and 3.3 using six for all incompatibilities.
Oops, this was an error in my original code, should have been `datetime.date(2012, 1, 1)`, since a leading 0 in python 2.7 means it's an octal representation. I didn't notice since they happen to be the same for 1-7, but if I'd done `08` or `09` it would have been a syntax error.