Make property data access more flexible

I've been running into situations where I've built up a key to look up dynamically and wanted to be able to pass the constructed string as a key to methods like `#default` without having to call `to_sym` on it first. I think this provides a slightly friendlier interface.

@morten @staugaard @kbuckler @rapheld