Changed how objects that are part of Item are created.  They had been
getting initialized as empty objects by the Item class's constructor,
which resulted in tons of extra rows in the database with null values.
I changed it so they are only created when they are actually filled in
with values.  I also added setter methods for several objects inside of
Item that check if an existing one with the same name or code value
exists before creating a new one.