Add Doubly Linked List

Bad news: I see a bug in your code. You didn't test for what happens when you pop, then push; nor did you write any non-constructor test checking the size attribute. I wrote a test for you to show off when your implementation fails:
```
def test_from_mark():
    test = h.min_heap()
    test.push(16)
    test.push(4)
    test.push(1024)
    test.push(8)

    assert test.pop() == 4
    assert test.pop() == 8

    test.push(2)
    test.push(2048)

    assert test.pop() == 2  # It's going to fail here, I promise
    assert test.pop() == 16
    assert test.pop() == 1024
    assert test.pop() == 2048

    with pytest.raises(IndexError):
        test.pop()
```
See if you can figure out what's happening and resubmit to get some more points