In Python, it's legal to use splats in function calls like this:
call_function('123', *b, c=5, **d)
Prior to this change, jinja2 did not allow that. It mandated that all
splatting had to take place at the end of the call:
call_function('123', c=5, *b, **d)
This commit allows both orders.
Additionally, this commit adds tests for more things that are illegal:
namely giving a function a positional argument after using a splat to
unpack positional arguments or giving a function a named argument after
using a double splat to unpack keyword arguments.