allow paths with '!' in depfiles

See funny paths in
  https://github.com/google/libcxx/tree/master/test/iterators/stream.iterators/istreambuf.iterator/
Dollar signs in depfiles are escaped as "$$", not "\$".

See http://llvm.org/PR15642. I checked that gcc does produce depfiles
containing "$$" for files with "$" signs in their name (and as of
r178540, so does clang). I also checked that .d files that escape dollar
signs with "\$" are not read correctly by make.
Merge pull request #525 from nico/escapedollar

Dollar signs in depfiles are escaped as "$$", not "\$".
tag a feature with the right version number
decided against using XXX in the manual for unknown versions
add noreturn attr on Fatal()
refactor some of the output mtime-handling code

Reduces duplicated explain output.
Improved bash completion when using tools like '-t clean'
Merge pull request #526 from RedX2501/improved_bash_completion

Improved bash completion when using tools like '-t clean'
fix compile error about noreturn on windows
Merge pull request #527 from wang-bin/compile_fix

fix compile error about noreturn on windows
move test virtual time "now_" into VirtualFileSystem

It's the only piece that cares about the current time.
split FakeCommandRunner out of BuildTest

Separating concerns to make a subsequent refactoring easier.
sync version number in master with release

Update RELEASING with notes on how to not screw this up again.
add DepsLog, a new data structure for dependency information

DepsLog is a compact serialization of dependency information.
It can be used to replace depfiles for faster loading.
pass command results via a struct

WaitForCommand now passes all command output via a struct.
This will allow adding more output in a future change.
factor out implicit dep loading
use DepsLog in loading dependencies

WIP
factor out creation of build directory
load deps log at startup