3 new classes are provided: loop_ref, dynamic_loop and default_loop.
loop_ref has value semantics and is just a pointer wrapper (but with
reference syntax). You can change a ev_loop* for a loop_ref and
vice-versa without notice. You can create (or asign) a loop_ref from
a ev_loop* and you can cast a loop_ref to a ev_loop*. You can check
for equality between loop_refs and ev_loop pointers. No clean-up is done
by a loop_ref.
dynamic_loop and default_loop have both reference semantics (they are
non-copiable and non-assignable), and provide automatic destruction.