Fix Lockup, Memory Leak, and Skipped Log Entry bugs in Logger

First it fixes the Lockup.  This was caused by us trying to close
a file that was never opened.

Second it fixes a major memory leak.  If you tried to enable
logging without an SD card, we would try to allocate a new FATFS
struct every time we called init.  This malloc call is never freed.
Since we call every time we try to log to file, we will eventually
run out of memory to malloc.  Fixed by only mallocing once.

Fixed a potential skipped log entry in the logger by altering the
if/else logic in the fileWriterTask code.