This change continues to lay the ground work for supporting extended
const expressions in the linker.
The included test covers object file reading and writing and the YAML
representation.
I have a followup PR that actually adds support for using these extended
expression in the linker.
Should these be a union?
I wonder when we can go to C++17 variant...