support for lazy-load attributes

Hi,

I know there were other attempts, such as pull-request #101. I believe this new suggestion is closer to the expected implementation. Please consider the specifications to validate the suggested uses.

Example:
```javascript
describe('...', function() {
  given('subject', function() { return {"foo": "bar"}; });

  it('should...', function() {
    expect(given.subject.foo).toBe('bar');
  });

});
```