Cleaning up trait selections and javascript

Squashing bugs and preparing for trait set levels
Extend cleanup into search_controller
Continued work towards trait_set support

Cleaned up JSLint-reported issues in search.js
Initial implementation of list_trait_sets
Update trait set hierarchy on change

Added data attributes for row and level to make this cleaner
Somewhat working trait support beneath sets
Handle cases where trait sets are not used
Add full_name method for trait_set
Add full_name, refactor to module

Common code for both trait types now in trait_common and included as
module
Use trait full names in search results