Make valueChanged stream set value to null on task failure

Previously we were probably trying to use an exception value
as the value on task failure or something.

Adjust discoveredMainClasses handler a little to handle null
values.

Conflicts:
	ui/app/assets/services/sbt/tasks.js
Always create the version-N.properties file

Previously, if the launcher version matched
the activator version, we didn't write it out,
which meant we checked for an update every time.
With this change we cache the check for a few hours.
Always create the version-N.properties file

Previously, if the launcher version matched
the activator version, we didn't write it out,
which meant we checked for an update every time.
With this change we cache the check for a few hours.