Preliminary re-rethinking how this branch and JS work. Breaks into smaller individual functions.

This direction moves toward making different standard changes across a lot of views, and naming conventions for data attributes on elements. So, probably good that we're moving toward reconciling build and wireframes and working from wireframes in build. That'll foster more code review for the sake of making sure we're all following the same conventions and adjusting together when need be.
some cleanup and fixes to match markup data names