Table app args refactoring

This PR does three things:

1. Makes `core.config.parse_app_arg` a NOOP for tables.
2. Use `parse_app_arg` everywhere `loadstring` was previously used (also use uniform terminology for app arg handling: An app receives an `arg`, parses it using `parse_app_arg` which yields a `conf`.)
3. Replace `([[{...}]]):format(...)` constructs with table literals across the codebase.

Sorry for the big sweep, I felt it was a good point to clean up and unify the code. This might trigger a lot of merge conflicts, so merge this *late* then I can sort them out myself.
When I went over this I realized how bad this is (destructively modifying the `conf`, which might be shared if it was passed as a table). So I sneaked in a fixup here, see lines 128 and 148.