Change PhasingPlayer to use pointers.

This change allows injection sources to contain pointer objects. These
pointer objects are de-referenced to the value they point to by default.
To get the 'raw' pointer, the injection target must define 'needs_raw?'
to return true.

This fixes the 'phasing_player.player' problem, as PhasingPlayer is now
a pointer to player that is now de-referenced automatically upon
injection.