Changed object design

This branch is likely to be a mess for a long time.

Now a Block has Attributes, which have Models, which have Textures.
Doing this should help tidy the code, and make it more usable. The final
plan is to be able to support every blockstate file in the game.

At this stage, the only error was in the Add Block form. (It's still
using the old system)
Initial test of new creation system

I thought this would be a good place to put a commit. I haven't yet
tested anything since I created this branch.
Working version

Now to mess around and squish more bugs. I will merge this branch with
the master once it's ready.

I tested with roses, and it works. Roses allowed me to test the
attributes system, as well as have to deal with potential duplicate
model names.
Better model name overriding

Now done at the attribute level, although still possible individually.

Also fixed the horrible tab indexes.
Removed old classes

I was using them during development for copy/pasting. Now everything
they could do is possible with the new system.