Allow lazy attribute defaults in LWRPs

This patch allows LWRPs to declare a lazy-loaded default value:

```ruby
attribute :magical_secret,
  kind_of: String,
  default: lazy { SecureRandom.uuid }
```

Or better, reference values later:

```ruby
attribute :home,
  kind_of: String,
  default: lazy { "/home/#{name}" }
```

This is theoretically a breaking change, because it does not permit a user to set the value of a resource to a type of `DelayedEvaluator`, but I would argue that is a use case we would never support anyway.

@opscode/release-engineers @opscode/client-eng this is ready for review now