Lively Kernel, a self-hosting, metacircular prototyping and development environment implemented inĀ JavaScript