allow set command line arguments programmically

We need to use gunicorn in our own program, which has a different set of command line options.  It is error-prone to modify `sys.argv` in place before call `Application.run`, e.g. it breaks the USR2 signal.

This pull request adds support to pass args (a list of str) to `Application`, so that we can build it in our program and pass it to gunicorn, and the USR2 signal still works.