Create stub for my implementation of qsort.

Add unit test and commented out psuedo code to implement
in DArray_my_qsort. Plan to make it inplace.
Eliminate useless debugging message.

Delete a single printf.
Implement inplace recursive quicksort, with its own unit test format.

Made quicksort with Wikipedia's implementation of the in place quicksort.
In order to get the unit test to pass, used the strcmp as the comparison
directly instead of utilizing the function passed in. Will need to figure
out how to do the comparison with the test_cmp function in the unit test.
Eliminate extra unit test by modifying comparison and refactored qsort.

Changed comparison function to use ptrs to ptrs like the typedef says
to eliminate the need to manually send strcmp via the test function.
Also made an inline function DArray_swap to make the swap operation
cleaner. Will be used in heapsort also.
Make stubs for personal implementation of heapsort + helper funcs.

Currently, heapsort works by using the library qsort. Helper functions are
empty sans a giant comment containing wikipedia psuedocode.
Implement 'siftdown' heapsort algorithm from wikipedia.

Convert wikipedia's psuedocode implementation into valid C
code. Delete comments and unit tests are passed.
Silence unneeded warnings appearing for list, list_algos and darray_algos.

Added a check so that the error flag that's needed for debugging
no longer emits warnings.
Assign cur to itself, so that cur becomes used in the macro for list_join
stopping warnings for unused variables.
Delete unneeded temporary storage variable in darray_algos.
Create stubs for personal implementation of mergesort.

Create unit test for my_mergesort, with my_mergsort actually
acting as a wrapper for a library qsort and the wikipedia
C++ code for a bottom up mergesort inserted as a
comment.