std::comm: replace Handle.id with a method.

The `id` shouldn't be changed by external code, and exposing it publicly
allows it to be accidentally changed.

Also, remove the first element special case in the `select!` macro.