Added suggested attributes based on part category

The adding attributes functionality was completely restructured to enable
more flexible manipulation and the ability to add rows to places other than
the end of the list.