'encapsulate' => 'prepare'; computed properties

This change set adds the notion of 'computed' properties. If an event
property's value is a function (or if the value is missing and its default is a
function), EventLogging will invoke it with the entire event as the context
object and use the return value as the value for that property.

Change-Id: I86cc10854b0058b3ae9623c7c47d2c0824919193