snewn cleanup

An unsigned char is a char is 1
Use *Memory macros

Also use calloc instead of malloc + memset