Better (faster, stronger) SCM segments in bobthefish

The interesting commit is 9deb9c7

Merge #256 first. I just added this on top of that so I wouldn't get merge conflicts :)

@bpinto This fixes that TODO you didn't like.

@rominf This reuses the hg/git root so we only look it up once, and we use its presence to decide whether we're in a repo or not (no more `_in_git`, etc). I left in the native hg repo root lookup, but after virtualenv colors and then this then this are merged, we should replace `__bobthefish_hg_project_dir` with one based on your faster lookup.