Linkedlist Update, Refactor

The linkedlist implementation has been updated to be doubly-linked. The
implemenation has also been updated to take up less space for the underlying
structure of the list.

The list iterator that accompanies a linkedlist has also been updated to work
with doubly linked lists.

TODO:
 * The list implementations for add/remove can be made slightly faster by
   comparing the list size against the index marked for addition/removal. This
   could potentially reduce addition/removal time almost by a factor of two at
   best.

File(s) Modified:
   include/linkedlist.h
   src/linkedlist.c