Extract extended contract metadata types to separate crate
Created by: ascjones
Follow up to #57 (closed), as discussed here https://github.com/paritytech/ink/issues/299#issuecomment-658710757.
Types for extended contract metadata can be shared with https://github.com/hyperledger-labs/solang by extracting the types to their own crate.
To start with, we could add the crate as a workspace package in the cargo-contract
repo.