When there is no parent, don't fail.

I was using pyvcs to look back to the 0th revision, which didn't work because pyvcs assumed every commit had a parent. This fixes it, and also includes a lot of fixes for deprecation warnings (which are unfortunately mixed in).

I'm not using pyvcs anymore, so I didn't look into this any further.