Introduce Lotus::Utils::Property

I see this all over the code:

```ruby
def some_method(val = nil)
  if val
    @value = val
  else
    # do something with @value
  end
end
```

I wanted to simplify this pattern by introducing concept of a property. It's meant to be used internally

```ruby
# before:
def entity(klass = nil)
  if klass
    @entity = klass
  else
    @entity
  end
end

def identity(name = nil)
  if name
    @identity = name
  else
    @identity || :id
  end
end

def assets(value = nil)
  if value
    @assets = value
  else
    Config::Assets.new(root, @assets)
  end
end

# after:
include Lotus::Utils::Property

property(:entity)   { @entity }
property(:identity) { @identity || :id }
property(:assets)   { Config::Assets.new(root, @assets) }
```
`base.extend ClassMethods`