fe310: Only save caller-saved registers on regular trap
fe310: Only save caller-saved registers on regular trap

This commit reworks the trap entry to only save the callee-saved
registers when a context switch is required. the caller-saved registers
are always stored and restored to adhere to the RISC-V ABI. This saves
considerable cycles on interrupts.

OlegHahm/RIOT,RIOT-OS/RIOT,kaspar030/RIOT,kYc0o/RIOT,authmillenon/RIOT,jasonatran/RIOT,ant9000/RIOT,RIOT-OS/RIOT,OTAkeys/RIOT,miri64/RIOT,RIOT-OS/RIOT,authmillenon/RIOT,jasonatran/RIOT,jasonatran/RIOT,OTAkeys/RIOT,kaspar030/RIOT,OTAkeys/RIOT,OlegHahm/RIOT,authmillenon/RIOT,kYc0o/RIOT,jasonatran/RIOT,kaspar030/RIOT,kaspar030/RIOT,ant9000/RIOT,OlegHahm/RIOT,miri64/RIOT,RIOT-OS/RIOT,OlegHahm/RIOT,miri64/RIOT,RIOT-OS/RIOT,OTAkeys/RIOT,miri64/RIOT,kYc0o/RIOT,kYc0o/RIOT,ant9000/RIOT,ant9000/RIOT,kYc0o/RIOT,ant9000/RIOT,authmillenon/RIOT,OlegHahm/RIOT,authmillenon/RIOT,miri64/RIOT,kaspar030/RIOT,authmillenon/RIOT,OTAkeys/RIOT,jasonatran/RIOT