Making Key.parent return the same instance on return calls.

This is in preparation for adding parent to the constructor.

Addresses third part of #451.