[PowerNode] Add constructor that takes a variadic list of shared_ptrs

When constructing highly nested trees, it is often convenient to
directly allocate and assign child nodes without creating intermediate
variables. Unfortunately, the PowerNode is missing a constructor that
allows you to do that.

Fixed by replicating the infrastructure for variadic lists of references.