Unify %define-lines and %section directives

Also adds %insert-indented for the specification file.

Inserting an indented section inside another section is convenient when
working with nested data structures, e.g.

    types.spec:
        %section OperandLifeTime
        enum OperandLifeTime { ... };
        %/section

        %section Operand
        struct Operand {
        %kind canonical
        %insert-indented 4 OperandLifeTime
        %/kind
            ...
        };
        %/section

    1.0/types.t:
        %insert OperandLifeTime
        %insert Operand

    Types.t (canonical):
        %insert Operand

After this change, the following constructs are allowed:
- section within conditional
- conditional within section

The following is still disallowed:
- section within conditional within section
- conditional within section within conditional

Bug: 160667417
Test: ./generate_api.sh
Change-Id: I6e7f548e583ae302477503764ac1efb63bb71f60
3 files changed