Fixed bug with new categories showing up.

We originally stored categories in an ArrayList, and when iterating
through products, we accessed them using get(categoryId - 1).

This doesn't work because we can't make any assumptions about position
in the arraylist any given category is. Changed it to a HashMap
associating the categoryId key with a category value.
Fixing minor problem with productDelete