Move threading logic into the layers to allow overriding.
Pass metadata between layers.
Rename NetworkLayer to DataLinkLayer and remove redundant layers.
Add addr property to baselayer.
Nit docstring.
Add MetaData class to propagate meta information.