This allows support for any number of arguments and makes setting MOCK_MAX_ARGS unnecessary. It also allows for easier debugging due to being able to step into actual code instead of preprocessor generated stuff
Also fix and update examples and documentation where required This allows to make sure examples are actually runnable avoiding them to become outdated