Use boost::variant for children_t (Fixes #12)