Adds Subterranean classes for preliminary Subterranean work

Adds SubterraneanMobile which inherits Mobile and overrides some methods
in Mobile in order to add Subterranean functionality.  Adds yaml entries
for subterranean vehicles.  Makes some methods in Mobile able to be
overridden by a subclass (such as SubterraneanMobile)