parser: accept a list for clang args
parser: accept a list for clang args

A list will be helpful for easier manipulation at the caller level. Keep
support for strings as long as it's still needed for cli, tests, and the
extension.

Also, pass empty lists to Clang instead of converting to None, as
internally Clang converts None to [].

jnikula/hawkmoth,jnikula/hawkmoth