I was wondering if it would make sense for `SGObject::put` to return `this` by reference? That way we could chain various put calls: ```cpp auto k = create<Kernel>("GaussianKernel") .put("log_width, 1.) .put("cache_size", 200); ```