[Link] Basic link implementation

- enqueue(): add packet to buffers
- transmit(): transmit packets according to their timestamps
- report(): reports flow_rate, buffer_occupancy, packet_drop
Might not be true any more. In the find_next_packet() method above, you return a packet to send based on its timestamp relative to the packet in the opposite buffer.