Added packet encryption (+ gofmt)

I have added node-router packet encryption following the specification (except the part about sending `ID(router)` to the destination node in the `dst_id` field). I have moved all the code as methods of Header, which take the private key of the router and the public key of the node.

I think we should not have a uint16 service ID inside the header, because we have to convert it back and forth to big endian byte arrays for fingerprinting/encryption. maybe the uint16 version should be inside Packet?

The code also now precalculates the ECDH shared key in the RouteHandler, so that each packet doesn't have to recalculate it. What do you think, could it cause problems later on?