Draft: Improvements to IMC
This MR contains the following changes.
- Merge the implementations of IMC and ISMC to reduce redundancy
- Report more detailed runtime statistics
- Allow users to specify the frequency to compute fixed points (e.g. every k loop iterations)