Transaction():
- add optional fork string parameter to specify a fork name
- make deep copy of source options when needed
- add fork to transactions fork
- ..get_emit_options():
  - also add transaction id if there is a fork
- Now need to check fork in Union.Input