Add snapshot feature and some minor improvements

Snapshot feature (as suggested by SteveB, along with initial code, at
http://processwire.com/talk/topic/2892-module-version-control-for-text-fields/?p=50438)
adds new method "snapshot" to page objects. This method accepts Unix
timestamp or any string that can be converted to a timestamp as it's
only param and attempts to return said page to that moment in time.

Smaller changes include support for versioning page content starting
from the very moment a new page is added (previously only existing pages
could be tracked) and more careful data validation.