Add vector support for Hal state

A vector can now be treated as Hal state if the vector type can has
support for the `ToHalState` trait.