Implement easier way to ignore files in install.sh

IGNORE_LIST should contain a list of files to be ignored either in the base
$DOTFILES directory, as well as the $PRIVATE dotfiles directory.
Refactor main symlinking code to remove duplication

The logic for looping through $DOTFILES and $PRIVATE are the same,
therefore we can consolidate the logic into a single function and
use for both operations.