apl_crypt: Add encrypt/decrypt directly to/from file

apl_encryptfilechunk
apl_decryptfilechunk

These methods are counterparts.
apl_entry: Use crypt filechunk methods

Same code, but only the apl_entry translation unit knows the storage
size for the struct (length of plaintext)
Update README with description of program
Add apl_file header & source

Declare and define some file-related utility functions.

apl_freadchunk
apl_fwritechunk

Chunks are sections of data which consist of a metadatum (the data
byte length) and the data itself. Gradebook entries are stored as
chunks since the struct sizes may differ, not to mention anything
about ciphertext length discrepancies.
apl_file: Remove comment from apl_freadchunk definition
apl_file: Add apl_isdir method
apl_gradebook: Don't verify input

Input verification is user's responsibility
apl.h: Add apl__perror macro

Calls perror unless APL_NO_EMSG is defined before including apl.h
apl.h: Add apl__fprintf macro

Defined to fprintf unless APL_NO_EMSG is defined
apl.h: Include math.h and link -lm
apl_entry: Add score/max API

setscorei
setscoref
setmaxi
setmaxf
getscorei
getmaxi
getscoref
getmaxf
Add apl_date header & source
apl_date: Add apl_freedate function
Add date sanity test
apl_date: Add various date API

minute
hour
phour (12, 1, ..., 11)
day
month
year
am
pm
test/date: Print out current date & time
Update README with data structure descriptions
apl_date: Add apl_read/writedatechunk functions

Dates aren't encrypted yet, but they may be in the future
apl_date: Data/time API accepts const struct ptr
apl_date: Fix apl_readdatechunk bug

Was reading the entire struct instead just the time_t value