NPK beginning stages upload

Started work on the NPK.  I made a lot of mistakes in how it's handled,
which means I will be essentially rewriting the npk_* functions, but it
will compile and run a demo just so you could see what this could
kinda-sorta look like.

Time spent: 2 hrs 45 mins