dynamicTable overwrites changes w/ old data

BNC#865526

The dynamicTable plugin caches the proposal attributes JSON in it's json
property and does not take into account that the data might have
changed when it writes its own copy back.

This fix minimizes the race window. Another one would be to
make sure we always operate only on the path + value that changed.

(cherry picked from commit fe5fc3e7c3c6300a6f1d50088bba549a403eb58f)
Do not rely on TCP keep-alive for running commands through ssh

The timeout for this is huge (not sure how big, but certainly more than
10 minutes). This is extremely bad when we run chef-client over ssh
while applying a proposal because if the host goes down, we will be
totally blocked for too long. This happens even more since we have HA
and STONITH can kill nodes.

Instead, we use the ServerAliveInterval=15 option, which means we use a
ssh-internal mechanism for a 15s timeout. It will try this three times,
resulting in a 45s timeout before giving up. This is largely enough in
the context of crowbar.

(cherry picked from commit ba137a2532b8da1008ad85625a41ef74c43607c4)
Merge pull request #1013 from vuntz/roxy-sync

Sync with roxy