Refactor symlink method to be internal

The symlink() method should be the actual integration level runner while the
implemented function is only the internal actual linker.
Add argparse for symlink()
Make Infect() take a namespace as first argument
Rename old symlink test class to be internal
Implement high-level symlink command
Add tests for _is_installed()