perfmon: introduce the new interface PERFEVENT

This will be used to monitor complex hardware events.
perfmon: replace the old interface PERFCTR by the new one PERFEVENT
perfmon: expose ID of events in PERFEVENT_QUERY
nv_perfmon: store ID of events
perfmon: use event ID instead of event name for creating objects
perfmon: add support for special counter modes