Msg receive timeout

for review, it's currently based on the swtimer branch, I will rebase this as soon as swtimer is back in master

DO NOT MERGE: we have to decide how to deal with the swtimer dependency in msg