Update List.h

copied LinkedList from LinearChess, then thorough revision.

Note especially that, via iterators, we may insert and remove elements not just at end, but __anywhere__ in list!

Note also that, to avoid linker errors, template classes are best defined in same file as declared:
http://books.google.com/books?id=EotSAwuBkJoC&pg=PA61&lpg=PA61&dq=Inclusion+model+in+templates&source=bl&ots=iwO-H5_f8b&sig=_lQy9I36pfxWuU5iIw1IDCw-uK0&hl=en&ei=guCOTMbqGJHyvQPzs9DUCw&sa=X&oi=book_result&ct=result&resnum=3&ved=0CBwQ6AEwAg#v=onepage&q=Inclusion%20model%20in%20templates&f=false