(WIP) Implement callable defaults - Do not merge, for internal review

@mtyaka Created this temporary "fake" PR for the internal review. To close once the upstream PR has been opened.
I didn't expose the `persist_default` parameter in the initial version of this patch. Later I decided to expose it, mainly so that I had some place to document it, because I think it's important for users to understand what's going on under the hood. I'm ok with taking this out though, if reviewers don't like it.