Implement the remaining script purpose types (proposing and voting) and port the associated `script_context` tests from Aiken.