Ensuring outgoing packets have an ID and the correct From

- added a getSendAddress() to BotConnection
- OutgoingPacketDispatcher clones packets and adds ID and uses BotConnection to fill in the From if required.
- also added a bunch more logs in dispatchers and connectors
Added a Meter counter on EnvelopeDispatcher to count incoming and outgoing dispatched packets

- imported metrics in pom
- created static Metrics instance in new class BottoService
- added a new Meter in EnvelopeDispatcher and calling mark() after invocation of doDodispatch
Added timing for EnvelopeDispatcher (abstract for IncomingDispatcher and OutgoingDispatcher (Issue #17)

this timer measures how long it takes to process a packet:
for incoming packets, this includes adding and getting from the incoming queue, processing in the bot and sending the response if one is generated for outgoing packets, this includes only the time spent in the queue and the time to send it.