Implement Mergesort for ex31.
Code refactor by integrating LCTHW code.

Seperate the logic of the merge away from the merge_sort.
Use the FOREACH macro to divide the main list.
Rename foo->count to List_count(foo)
Deallocate sublists created in merge_sort
Stop warnings on anything with minunit.h

Modified argc = 1; to argc = argc; making argc a "used parameter"
Add list insertion before a node for insertion sort

Made the function List_add_after which was List_add_before
with a few modifications (e.g. after is now before etc.)
Implement insertion sort with the sort unit tests

Insertion sort iterates over a list until it finds an element bigger
Than it and then inserts the element before that node.
Otherwise, it puts the element at the end.
If the list is empty, it creates one.