kns: Add support for questions
Splits KNSTransaction into a separate file and attaches a QuestionListener to each to know if there's a question related to our resource.
The ContinueCancel questions we map them into the proceed/cancel abstraction that Transaction already has. The rest, we don't have the UX for at the moment, but at least we cancel the transaction and we show an error message instead of letting our users wonder.