Construct target optimizations and enhancements
This issue will accumulate and track various optimizations and enhancements for Construct target (#377).

- [ ] Use `CString` where applicable instead of `NullTerminated(GreedyString)`
- [ ] Use `Bytes(n)` instead of `FixedSized(n, GreedyBytes)`
- [x] Use `StringEncoded(FixedSized(GreedyBytes))` instead of `FixedSized(GreedyString)`
- [ ] Use default values of `include`, `consume`, `term` in NullTerminated
- [ ] Topological sort of type declarations to avoid / minimize using `LazyBound(lambda: type_name)` 
- [ ] `Computed(...)` sometimes can be used without lambda
- [ ] Inline Structs (and Enums) declarations where applicable / desirable, or as render option
- [ ] Enums could add # comments including docs and -original-name
- [ ] `-construct-render: ` options for Padding Flag inlineStruct inlineEnum