Sign then Encrypt

Ok. Hopefully this addresses all the past feedback. I tried to simplify the PR and still get what we need in. This one is also a prerequisite for #840 as mentioned below. @Renelvon @gubatron take a look.
seems like you'd be signing (processing) less data, so if millions of nodes are processing less bytes to sign trillions of messages, might make a huge difference in latency and energy consumption.