Performance: Reduce scope of Channel instance locks by property management
Performance: Reduce scope of Channel instance locks by property management

I was investigating the Channel synchronization logic and discovered that `Channel#setProperty()` and `Channel#getProperty` are inefficiant in terms of the lock management. `Channel#properties` is a ConcurrentHashMap, and it does not need synchronization on its own.  The issue may be somehow contributing to the Channel instance deadlocks, but I see no strong evidence of that.

The only reason for synchronization is a wait()/nptifyAll() notification chain for `waitForProperty()`. I believe it needs to be reworked, but for now I just reduced the synchronization scope to these two calls.

It also cleans up the FindBugs issue.

jenkinsci/remoting,jenkinsci/remoting