- Made greater use of smart pointers, eliminating many instances of manual memory management
- Do not use pointers at all for many non-polymorphic classes
- Assorted other code cleanup
- Added side pane for product preview and information
- Product selection is done with a separate pushbutton, so that user gets a
chance to preview the complete product information before committing to the
selection
- Supports two view modes: Grid View and List View
- View mode is automatically stored in Settings, so it will default to the
user's prefered mode
- Should address most concerns in #109 and #142