A.F....... [ZBX-7781] fixed no error being triggered when trying to pass the "auth" parameter to a method that does not require authentication

Before the fix:
- When calling a method that does not require authentication  (apiiinfo.version or user.login), the authentication token could be omitted. But it was given, it was validated, and could trigger an error if it's invalid.

After the fix:
- Passing the authentication token will trigger an error.

Additionally, the API request handling code has been rewritten so that it would be more structured and could be at least partially covered by tests. Some of the refactoring changes are:
- The CZBXAPI class has been renamed to CApiService;
- The CLocalApiClient class has been introduced to handle calls to CApiService objects;
- The CFrontendApiWrapper has been introduced to convert the output of the API to the format required by the frontend