Don't re-generate the ValueChanged event for every listener
Split apart watching build/values from requesting synthetic events

This allows the client to be more flexible and avoid extra events
when it doesn't need them. For example if it already has a local
cache it may not need to synthesize an event, etc.

One semantic change caused by this patch is that we now ALWAYS
synthesize a change event when we add any listener on the client
side, while before we only did it for the FIRST listener.
add SbtClient.lazyWatch and lazyWatchBuild

These are ways to add a watcher without kicking off a task
or getting immediate notification.
Don't auto-run task when watching a task key

Oversight, left out of previous commit; now you have to
ask for the synthetic request if you want to do this.
Merge pull request #108 from sbt/wip/havocp-quiet-watching

allow watching task values without running tasks