Make sure to only mount components once per DOM node

I've been encountering an issue where on initial page load the event
handler for `page:change` was getting fired twice, causing the React
components to be mounted twice, which caused all sorts of trouble. This
introduces a simple map of DOM nodes to booleans that acts as a guard
against nodes getting components mounted to them more than once.