improved MVar to deal with spurious wake ups and fixed a potential issue in `empty?` and `full?` methods