Rename xmalloc_and_zero() to xzalloc().

The former name is more or less only used by tinc, the latter is used by other
projects as well, and shorter as well.
Add generic crypto headers.

They should have been included in commit 9b9230a.
Add more __attribute__((malloc)) where appropriate.
Add __attribute__((warn_unused_result)) to crypto functions.
Fix warnings for functions marked __attribute((warn_unused_result)).
Add a few more checks and warnings in the crypto functions.