[svengali API] Enable attrs derived from other attrs.

[svengali API] Removed enter/exit callbacks as the use cases were
satisfied by attrs.
[svengali spec] Use async functions
[svengali perf] Optimize attr iteration, this.attrs creation, resolve attr value