Updates for new UI

Includes a variety of API functions that came up as necessary. Put
everything in functions.php for now, with intent to clean up later on.

Adds front-end support.