Support @Effector annotation on entity methods

- also general cleanup and other additions:
-- adding @Override annotations
-- Add BasicParameterType.toString()
-- Add name toAbstractEffector.equals
-- adds BasicParameterType.equals/hashCode
-- adds Reflections.findPublicMethodsOrderBySuper, so can ensure take
   overriding effector definition when annotated accordingly.
Convert effector declarations to use @Effector
Adds EntityType.getEffector(name,paramTypes)