Feature ioexceptions

Do not catch `IOExceptions` to rethrow them wrapped in a `KamaException`.

Methods now throw both `IOException` and `KamaException`. 

@Nixweerd @TheN1ckname