Light weight literal
- Replaced variant in Literal with LiteralStorage. It uses a union and one bit of the info field to achieve the same thing but with 50% less space
- fixed ctor ambiguity of Literal by adding tags and helper functions
- added tests for LiteralStorage
- made some constants constexpr