fix aes(): allow mixed positional and keyword arguments

aes() used to silently ignore additional keyword argument if some
positional arguments were used.

aes("x", "y", color="color") is now valid codec and equivalent to
aes("x", "y", "color") or aes(x="x", y="y", color="color")