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.
Merge pull request #17 from aepsil0n/abstract_node_state

Abstract container in NodeState
Benchmark object query
Query and construct using unboxed closures

These closures can be inlined and cause less indirection. This seems to speed
up affected benchmarks by about a third, which is a decent improvement.

Fixes #8.