Devoncarew benchmarking

Add benchmarking for costly operations in Spark. These run as part of our unit tests. We'll be able to measure expensive operations in dartium and dart2js, and know when optimizations we do positively impact our performance. Each benchmark adds 2 seconds to our total test execution time.

Also:

- speed up our sha1 algorithm by 40%
- some minor optimizations to some git operations, to do fewer array copies

@gaurave, @dinhviethoa