Refactor to have <py-object> as an actual type.

We use <raw-py-object> as an alias to <raw-machine-word>. This
avoids double-boxing and will let us have a raw interface to
avoid extra conversions / boxing.