Recurses existing directories (but symlinks wrong)

Goal: implement symlinking for _individual files_ inside directories
which already exist.  For example, `~/.vim/filetype.vim` should be
symlinked from the repository, but the `~/.vim` directory should not.
I've got the recursive processing down... now I just need to fix the
constructor for `Link` so the target is relative to the `ghar` base.
Recurse into directories; symlink individual files
Merge pull request #7 from chiphogg/directories

Improved handling of directories
Fix bug where link_subcommand ignored repo arguments
Merge pull request #10 from githubaff0/fix-link-subcommand-ignores-repo-args

Fix bug where link_subcommand ignored repo arguments
Fix issue with getting ghar_dir when sys.argv[0] is a relative path.

Fix issue when ghar invoked with relative path ('bin/ghar' or 'ghar/bin/ghar')
or when 'ghar' invoked in ghar/ dir and relative path 'bin' is in the PATH
(e.g. when using Boxen).

Credit goes to github users @Flaeme and @danny316p for the fix.
Added support for ".gharignore".

This file lists, one per line, fnmatch-style patterns (e.g. "README.*",
"*.txt, etc.") to ignore when creating symlinks.

This has to be a separate file and not just .gitignore because .gitignore
means that those files won't be committed and sent to upstreams. That's
OK for stuff you want to keep private, but not OK for stuff like LICENSE
and README files that you'd like to share.

For example, see https://github.com/jacobian/dotfiles
Also fix path discovery for symlinks.

Use realpath instead of abspath so that ghar can find its directory even
if "ghar" is a symlink to the script, as well as the case where it's
invoked with a relative path. Also reformat line in accordance with
PEP8.
"Fix" directly linked folders.

Don't try to make the basename of a link relative if the link is not a
collection, as the result is always the path ".". This was broken by #7.
This isn't an ideal fix as it doesn't handle the case where the target
already exists; it would be nice for it to merge recursively the way it
does for collections, but it's better than it failing entirely.
python 3 print function, urllib.parse
Support both python version urlparse library.
Explicitly check for default sub-function.

Python2's argparse, when setup to use sub-parsers, will complain when no
arguments are given. In Python3, argparse will not complain when given no
arguments and just return an empty Namespace.
Merge pull request #14 from jacobian/gharignore

Added support for ".gharignore".
fix(bin/ghar): add more helpful error for symlink fail

include the filename if we can't link.

Cleaned up version of #15 from @jacobian. Thanks.
Merge remote-tracking branch 'featheredtoast/python3-backwards-compatability-rebase'

Conflicts:
	bin/ghar
Merge remote-tracking branch 'tornewuff/fix-folder-links'

Conflicts:
	bin/ghar
Merge remote-tracking branch 'tornewuff/fix-path-discovery'
chore(ghar-bash-completion): fixup whitespace
feat(README): make it a markdown file

bring this project into 2013 with a nice looking markdown file
chore(README): fixup the thank you list