Add util header for subsystem specific macros

This PR adds utility macros for the command subsystem.
Of course. I would also stick to the uppercase names and call the macro with

```
ITERATE_ARGS(it, args, foo, INT)
```

Or something. Because when you have `object` instead of `int`, it looks a bit unfamiliar!