Make error and valid? methods more efficient
Make error and valid? methods more efficient

This is based on Dan's suggestion to memoize error, extend it with
`.inquiry` and delegate `.valid?` to it.  I modified it a bit as the
`delegate` methods from Rails and Forwardable clashed.

ministryofjustice/prison-visits-2,ministryofjustice/prison-visits-public,ministryofjustice/prison-visits-public,ministryofjustice/prison-visits-2,ministryofjustice/prison-visits-2,ministryofjustice/prison-visits-2,ministryofjustice/prison-visits-public,ministryofjustice/prison-visits-public