Make hosts have names
Allow packets to travel in both directions.

This required creating a new Direction: "BOTH" for
use only in the first cell that packets are written
into. I also made a copy constructor for Packet so
that two copies are made; one for left and one for
right. I also changed the bounds of iteration
in Ether.draw().
Fix null pointer exception that occurs sometimes.

Elements are being removed during iteration.
I think the correct way is to use an iterator, but
looking closely, I don't think anything needs to be
removed at all.
Implemented Swing UI.

Need to still make the canvas a subcomponent of the UI.
Some of the buttons don't seem to work as intended,
so we should fix Renderer.