Add mkdir_p, try mkdir_p before symlink

Also remove stripping out dirs that start with "."; this breaks files in
`.bin` or `.ssh`, for example.

I know @jbernard brought up issues with os.walk pulling in .git; I think it makes more sense to use the .dotfilerc to ignore those files rather than to ignore them in code (I ran into this issue because I have files in .bin and .ssh).