More robust updates of Stamps in Analysis object.

Preserve the type of an existing Stamp object that we're about to update.
This way we respect the the type of Stamp object incremental compiler
chooses to use to track produced class files.

This fixes a regression of incremental compilation with sbt 0.13.0 where
incremental compiler uses Exists stamp for tracking produced files and
we would override them with LastModified stamps.

With this commit, all sbt 0.13.x versions should be supported.
Fix example code on scala json
Merge pull request #2370 from buster84/patch-1

Fix example code on scala json
Merge pull request #2369 from gkossakowski/robust-stamps-update

More robust updates of Stamps in Analysis object.