make the default param call-by-name for readWithDefault

delay this computation so that expensive computation is only invoked if the default value is needed
add scaladoc to RichEntity and RichAttribute