Add add_[pre|post](effector_p) methods to base_object.

This issue is a blocker to diff_steer development. This adds methods to base_object to allow adding effectors referenced in shared_ptrs (typedef effector_p) in addition to as abs_effector * (raw pointers). This is needed to enable safe handling of dynamically allocated effectors which need continuing links back to controllers, etc.