apl_gradebook: Add apl_openbook comment
apl_gradebook: Work on apl_openbook implementation

Allocates a gradebook and handles clean up in error cases.
Also added some private functions for use in such cases.
apl_gradebook: Check fopen result in apl_savebook
apl_gradebook: apl_open/savebook accept EVP_CIPHER_CTX pointer
apl_gradebook: Add apl_newbook method

Creates an empty book with a given title
Add gradebook sanity test

Valgrind memcheck is tossing some unconditional jump warnings, but
this is likely because most gradebook function implementations
are incomplete
apl_gradebook: Work on apl_openbook implementation
apl_gradebook: Work on apl_savebook implementation
apl_gradebook: Add apl_gettitle function

Get const pointer to the gradebook's title
test/gradebook: Lots of testing added

Do saving/opening as well as data verification (input == output)