Modified HasEffect and HasAbility add* methods to return a reference to the added object.

Removed HasChildren Interface since it's methods are now protected methods of AbstractBaseObject since they should only ever be used internally.

Added Javadoc comments.
Fixed up getStack() methods now that the HasStack interface has been removed.
Added/modified Javadoc comments.

Minor formatting changes.