Use panic instead of propagating errors.

It's very painful to thread errors "by hand". In a nice language like
Haskell we'd have an algebra doing this threading automatically, but in
Go the only real choice is to panic and capture in a well defined place.