Items code cleanup

* Use std::vector instead of our own Array class
* Rearrange data members for memory and performance
* Move bed checks to parseItemNode instead of iterating all items again