Contract Cleanup

- More contract cleanup... Not too many complaints from the analysis tool now.
Initial Work On Socketing

- My goals right now are to try and make an API I enjoy working with, so I'm trying out an API I think I'd like inside of the tests and then coding some of the backend. This means I might start coding in little hacks here and there (i.e. why did I make every item by default have 1 open socket?) but I'll have tests that I can tweak later to make sure the behaviour is as I expect.
- This commit is all about getting some of the basics for socketing items.