Minimal, Promise/A based HTML5 canvas game engine