Use lazy evaluation for the derived attributes

Use lazy evaluation for the derived attributes to delay the string interpolation until later.
With this user can override only one attribute without need for overriding all other attributes that use main one.

For example (before PR):

```
node.default[:rbenv][:install_prefix] = "/usr/local"
```
by overriding `install_prefix` you would not override `default[:rbenv][:root_path] ` because it's interpolated before attribute from wrapper cookbook existed.

More info about this problem you can [find here](https://coderanger.net/derived-attributes/) (tnx to @coderanger).