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.
The fact that `validate_signature` is a static method does not affect the way you call it, so:
```python
if self.validate_signature(..)
```
for consistency.