The container expects that the particle exposes a method `as_tuple` that
converts the particle object to an std::tuple.
The container no longer hides the underlying container value_type. It
provides a particle_t alias to the particle type.
FTree will deduce its particle type from the container in two steps:
- if the container exposes a particle_t type, it is used
- otherwise, the value_type alias of the container is used