move `--profile-dir` alias to base IPython app

allows specifying exact path to profile directory,
rather than just the name.
remember argv used to initialize an Application

store a copy so it can't be manipulated
pass profile-dir instead of profile to Kernel

avoids relative path issues for local profiles
when the notebook server starts in a different directory
from the kernels.
Merge pull request #4098 from minrk/profile-dir

pass profile-dir instead of profile name to Kernel