prevent multiple entries of the same list item
minor improvements

- add CSS gradients for cross-browser support
- trim whitespace before and after list item names
Add Sort List and Clear List buttons

- Use array instead of a set to keep track of list items.  Arrays are
sortable.
- refactor code for better readability
Fix bug that caused wrong items to be crossed off after sorting

- Change array to contain objects with 2 properties instead of just the
item name.  This allows the crossed-off status to be retained even when
the array is sorted.
- Refactor code for setting visual crossed-off status of items