Randomly place player in empty space.
Restrict movement to passages/empty spaces/doors
Double-buffer screen updates.
Fix 'delayed' rendering of movements

Used core.async to get instant feedback like Ruby implementation