Made the abstract interface to our Doubly Linked List and some sanity tests.
Note that for insert, we actually sort it by the data value. This is to be used later on in the Order Matching.
We currently do not support nested things like
int** I think. We only do shared_ptr, pointers*, and value.
In the future we need to add more tests and document it well.