apl_gradebook: Don't zero memory in _apl_strdup
Change how private functions are named

apl__funcname (2 underscores) instead of _apl_funcname
apl_entry: Initialize all memory in apl_newentry

This appeases Valgrind and doesn't "double" initialize memory
apl_gradebook: Free ciphertext buffer after use
apl_gradebook: Don't alloc null-term for ciphertext

Decryption doesn't need to be null-terminated, it just needs to know
the length of the ciphertext
apl_gradebook: Code cleanup
apl_gradebook: Change flow & error handling

In function apl_openbook

Load file before allocating struct, so any future errors can just
close the file without worrying about it being open or not
Merge branch 'gradebook'