add readWithDefault

add `readWithDefault` to enrichment classes for entity and attribute
use if-else rather than try-catch for optional attrs

check the entity with `contains`, rather than catch exceptions
add basis tests for RichEntity and RichAttribute

basic tests for typesafe reading of entities with attributes
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
rename readWithDefault to readOrElse

more consistent naming
Merge pull request #136 from dwhjames/topic/read-with-default

add readWithDefault for rich entities and rich attributes