setup.sh improvements

Improvements to setup.sh, including:
- escaping variables that _could_ contain spaces
- moving status messages into their own functions to improve readability
- replacing '~' with ${HOME}
rename 'symlink_ignore' to 'osx'

Enough has been moved out of symlink_ignore that it now contains only
Mac-specific setup. Rename the dir accordingly.
readme updates