Guess or set prototype variables when sourced

Groundwork for using prototype as a library.
Localize declaration of prototype vars
Protect against overwriting prototype vars

This is over-engineering.
Add sub example

Demonstrates how prototype can be used as a library and intentionally follows a
lot of what happens in the prototype test suite.  The idea is to show that the
same behavior applies. The name sub is a nod to the 37signals/sub project which
was at one point an inspiration for comv, the parent of prototype.