Memory leak fixes, testing improvements

crypto.cpp:
- Added EVP_CIPHER_CTX_cleanup removing memory leak
- mutex_buf is now malloced and checked so it's not repeatedly
overwriting the global

debug_print.cpp:
- moved print_bytes into here so everyone can use it, have it pad output
to specified line length

files.cpp:
- filetype in file struct is now allocated instead of using static
char*, allowing for consistent cleanup
- checks added for free_file_object

parcel.cpp:
- nheader now mallocs the header and must be freed. This was done
because the struct was being padded, and valgrind was reporting it as a
possible problem with uninitialized data (could be exploited for
security).
- improved and reordered clean_exit

receiver/sender.cpp:
- changed to use malloced header, so it uses pointer and is freed

udpipe_client/server.cpp:
- added a bunch of frees on exit to better clean up
- renamed rcvargs to recv_args for consistency

udpipe_threads.cpp:
- debug output for when auth check fails

testParcel.py:
- now has trips arg, which will do N round trips on request
- supports encrypted testing as well