Support Python 3.4 (initial cut)

This is based on the work in #397