net: Initial import of a global packet buffer

Cleaner alternative to #1129. Queue in #1640 

This is basically a static malloc + sugar
But with macros you have the beauty of typed arguments, too. Also otherwise I'm going to complain about every instance were you did not put a macro argument in parens: `((void *)(((_packet_t *) (pkt)) + 1))`