WIP on shared_ptr usage throughout.
The library code and the HVAC example are all shared_ptr now.
Weapon example uses shared_ptr