Wrote macros for push and ask.

The Outbound endpoints have their out method as a macro, so that proper error reporting is possible.
Improved the logic that extracts the SupportedTypes from the outbound endpoint
Refactored endpoints to match the refactor on Sink and Askable endpoints.

Now those endpoints implements the Impl version of their methods.