Implement stack
Implement queue
Implement singly-linked list
Souped-up singly-linked list

 - Interface is standard python for insert(value, index) and remove(index)
 - Adds slicing and length for linked lists
Modify base insert in doubly-linked list

 - Insert only moves forward
 - Takes nodes: insert(node_to_insert, previous_node)
   - if previous_node is not passed in, inserts the node at the beginning of the list
Added base rev_insert to double
Implement (correct!) insert with indices for double

 - insert(value, index) -- mimics normal python interface
 - insert moves forward if the index is found in the first half of the list, and backwards if the index is in the second half
 - added helper test methods (test_node(node, value, next, prev), test_linked_list(linked_list, head_node, tail_node))
Added docs to doubly-linked list
Cleaned up reverse iteration in double

 - Instead of reverse_iter() and re-defining enumerate with a reverse flag, made use of built-in reversed()
 - To iterate backwards, can use 'for node in reversed(double_linked_list)...'
 - insert() now can move in both directions (i.e. will move forwards through the list if the index is in the first half, and move backwards if the index is in the second half of the list)
Merge branch 'master' of github.com:becdot/pydata-structures