Allow user to specify whether to use SO_REUSEADDR on p2p port, fixes #921


P2P sockets disable `SO_REUSEADDR` (I assume due to its weird semantics on Windows platforms).

Disabling `SO_REUSEADDR` remains the default after this patch, however the user can now override this default by adding the letter `r` in front of the port number (i.e. `--p2p-port r9000`).

It's particularly helpful for unit testers who want to restart the client over and over again, but server admins should be happy about this change too (it's better for your uptime if your node can get up and running again ASAP when it crashes instead of waiting around at startup until the OS expires `TIME_WAIT` connections from the old client instance).