change fake_unit class to fake_unit_ptr

Well this commit no longer segfaults afaik but there's still some
oddities going on with the whiteboard, for instance try moving your
leader in planning mode, the engine seems to get confused about
what happened...
this is probably unnecessary, but i'm not sure atm
use boost swap for boost pointers