SinkUserProvider/SinkUser: Add generic for base and implementation types, SinkUserProvider: add getImplemenetationClass(), SinkUser: add getBase(), deprecate getSender()