Better behevior when changing basis.

Made the changeShBasis method virtual, so EAPs can have
their own behavior. Also added the swap method on the EAPs.