Added an Error enum and changed the GossipError to accept it. Added a protocol mod and a version enum variant. Closes #11 #10

Signed-off-by: Daniel Fagnan <dnfagnan@gmail.com>