Abstract container in NodeState

NodeState is not hard-coded to use a Vec any more. For generic programming we may want to impose trait bounds on the container in the future.

Fixes #7.