List API additions.

Similiar as in previous pull request #99 added missing methods to `Map`
class, this commit adds some missing methods to `List` class. These
include searching for list elements, removing them and subscript
operators `__getitem__` and `__setitem__`. Also modifies
`ListObject::Link` class so that it contains pointer to previous list
node as well as pointer to next list node.
Also it seems the exception is always thrown if the function doesn't fail.