Improve Stats.Sub()

Few tweaks to Stats.Sub() to make it more usable.
* Return the receiver stats fields that aren't subtracted (rather than zeros)
* Subtract TxN
* Guard against nil pointers

@benbjohnson 

/cc @snormore @charlescng 
I can go either way, it just seemed to me that since other is being subtracted, just returning it if s is nil seemed a bit odd.