Added basic list functions for v2
This is pretty similar to V1 implementation wise (except it is bidirectional iterator compliant now, not just random access iterator compliant)
Found a nice way to declare functors with anonymous structs
Added basic list functions testing