Change semantics of `put` method for LRUCache objects

This changes the `LRUCache.put` method to provide a general
way to insert an object into the cache.  Previously,
`LRUCache.put` wasn't sufficient for this as it appeared to only
behave as a "touch" method (e.g. if the item wasn't already
in the cache, it was a noop).

This is useful to provide a way to "seed" the various caches.
In a number of locations we construct items and put them in
the DB, only to immediately load them back.  We already have
caches around these DB accesses to avoid multiple "gets"
actually hitting the DB, but we can avoid the initial "get"
missing in many cases by seeding the associated cache when
we put the item into the DB.

An example of this is chrdicts and the chrdict cache, where
it's common to call `addChange` followed by `getChange`.
This results in two DB accesses when it really only needs to
be one.
Add more parameters to the Robocopy step on Windows.
Added more tests for Robocopy.
Merge andrewjcg/buildbot:cache_set (PR #1125)
Merge ludovicchabant/buildbot:mswinsteps (PR #1129)

+autopep8, pyflakes
For timeouts include the command being run in the failure string
Remove duplicate in doc for 'all' email status mode.
Add a master git+Gerrit configuration sample
ensure that summaryUnsubscribe succeeds

`summaryUnsubscribe` shoud be callable even if `summarySubscribe` hasn't
been called.  Fixes #2756.
Support for --depth flag to repo init.

This allows checking out a shallow clone with reduced history.
(fixes #2754)
(fixes #2754)
Merge samuelmz/buildbot:fixes#2754 (PR #1134)
Merge edmorley/buildbot:master (PR #1130)
Merge dankegel/buildbot-x:master (PR #1131)
Merge alagoutte/buildbot:add_git_gerrit_example (PR #1132)
Update docs and release notes for Repo --depth
Merge rjogrady/buildbot:master (PR #1133)
rename repoDepth to just plain depth, and add a test for it
Merge branch 'master' into nine

Conflicts:
	master/buildbot/test/unit/test_master.py