External controls

API changes to allow controls that exist outside the reader's DOM subtree. Based on a pull request from @julien-c. (Thanks!)