Use a property management collection to store and access various vm properties

This replaces what would ultimately become an unwieldy set of individual
properties, and allows for easy overloads that can get/set the character
strings directly