refactor: introduce Player constructor
Refactor: move money access to Player class
refactor: move property purchasing to Player class - now all access to cash goes through Player
refactor: hide player Holdings property, expose IEnumerable<T> only
refactor: enforce invariants in Property constructor
refactor: enforce invariants in Location
refactor: moved behavior for buying property
refactor: move Player list creation to NewGameData