Support for conditionally required Dash properties

Added support for conditionally required properties on a `Hashie::Dash`. The conditional can be a `Proc` (called within the context of the Dash instance) or `Symbol` (representing a property or method defined by the Dash). The property is required if it evaluates to something truthy.