lots of updates for a new article

* 3D tree content and JS
* template refactored into base.html
* alternate no-img article template
* build.py updates to handle multiple pages