Only update last seen time when the node is actually being useful.

More useful tracking of useful peers (ones that actually serve useable blocks and txs, rather than version messages, inv messages, getdata messages).

Gotta be honest, I don't fully understand what this code does - but somehow this change seems to intuitively make more sense than the current code.