The best resources I can recommend are the following in regards to StakeValidators:
Plutus Pioneer Program Lecture #10 Cohort 3
Example Implementation StakeValidator
Plutonomicon StakeValidator Intro
How do Rewarding scripts differ from Spending scripts?
Rewarding scripts can only make assertions in regards to the registration/ deregistration of delegation certificates for some provided payment keys. In addition, they can also implement logic that validates withdrawals of staking rewards from a given address as well as ensure delegations to a new pool.
How to use Rewarding script, how are Rewarding scripts interacted with?
This was part of the PPP lecture 10 (see link above). Whenever someone creates a transaction trying to withdraw from an address that is managed by a StakeValidator then the rewarding purpose is used that provides the corresponding StakingCredentials in the ScriptContext. These StakeValidators are implicitly run whenever someone tries to withdraw rewards from an address that was created with a script StakeValidator.
Can Rewarding scripts be used with native tokens?
Could I for example create smartcontract for staking KUGIS native tokens and getting KUGIS coins as a reward?
The rewarding mechanism through staking is as far as I know only done for Cardano's native currency ADA. If you wanted to create your mechanism you could use a minting policy instead for your custom token. So your smart contract/ minting policy would have to validate under what conditions new KUGIS coins can be minted. You could also airdrop coins for participants acting a certain way - such as delegating to a pool etc.