Use unique ID for each interval

This to prevent name collisions.
Adds support for HR as duration

Can be used to for instance recover until HR falls to a given level, or
warm up until HR reaches a certain level.
Various styling and minor improvements
Shows hint when selecting code
Adds metadata.