Rename IShouldUpdate => IShouldRender
Cleanup & document life-cycle protocols

Removes verbiage of 'update' and replaces with 'build'

Adds documentation of life-cycle protocols (although they aren't all correctly
implemented yet).