Error handling and boot changes

Better error handling in pageopen()
Change the way doctor and lightning interact. Doctor does all the work now and
lightning only runs doctor.
Remove stock potions of more than 10M from consideration
Make shorten() use pageopen() and handle failures differently
Merge pull request #56 from esteigler/random

Error handling and boot changes