Loads of jquery fixes

* Abstracted out buildListing, which does a lot of stuff automatically
* Used $('<div>') instead of $('<div />') to avoid an HTML parse
* Changed .attr to .prop a few places
* Pulled apart some really long interface-building lines

TODO still:
* Loop through an array instead of manually calling buildListing on each
  item. That was really annoying.
* Could probably add IDs to these, or at least more informative classes