Revert "Revert "bash: Use `tput` to set terminal colors""

Thanks to [1], I realized that `tput` was making bash calculate the
width of `$PS1` incorrectly, which was resulting in all kinds of display
issues. Thanks to [2], I figured out that you have to wrap the output of
`tput` in `\[` and `\]` so that bash doesn't include the character count
in its calculation of the prompt length.

This reverts commit 5e9d062d971ed19b2f3e63501047f7148a0c9fcb.

  [1] http://unix.stackexchange.com/q/90772/57970
  [2] http://unix.stackexchange.com/q/105926/57970