CS: remove unused args/vars + enforced arg types + various CS fixes

According to #193, here's the PR that cleans unused code, remove uneeded args but also enforces some method argument type hinting.

Feedback and contribution is very welcomed.

Thanks,
all these functions where you remove the $args and similar ones, be aware that they will be called with an argument. So while the argument is not used inside the method, the method will received said argument, so I'm not sure removing $args there is the right thing to do, since at the protocol level, those arguments are being passed to the function.

From my point of view, keeping them makes things less magical