Version packet

@indutny, thoughts on this? Maybe we could quicker switch to the `filterload` stuff by sending `relay` in the version packet? Does it matter? Also, the startHeight...is that even applied if we're using a bloom filter? Anyway, it looks like the framer method may have been doing a writeU32 on an undefined value (luckily bitwise ops cast undefineds to zero).

Also, right now when you call `peer.watch()`, bcoin will throw a nasty error. couldn't calling peer.watch() without a hash be useful just to send filterload to (potentially new) peers again?