Splitting and refactoring

Split up some methods for better reusability.
Product editing added

Added a function for editing existing products.
Changed ordering of returned list

Company name list is now ordered starting with those that have the most
recent orders to those with the oldest. This way, the companies we deal
with the most will be near the top of the list when the application is
opened.