cpp: create a base interface for all formatters
cpp: start implementing includes builder

- add skeleton for includes builder in class formatter
- add skeleton for the path spec workflow
- read relative path from entity in class header formatter (with a few
  hacks for now)
- remove setup relative paths from includers interface (pass it in as
  a constructor argument instead)