257: Refactor UnderlyingAsset
At present Cash is derived by restriction, which is a challenge for both Software Tools and Developers This could be avoided by forming a new UnderlyingAsset base class which contains only Cash and the present content of UnderlyingAsset could then be derived by extension