Allow running base16 from anywhere in the PATH

Refactor the main executable to be able to handle relative paths.
output continues to go to <path/to/executable>/output