Remove uses of deprecated ops::Not impl's. (#714)

Fixes #656.
diff --git a/src/event_imp.rs b/src/event_imp.rs
index 862863f..096de9f 100644
--- a/src/event_imp.rs
+++ b/src/event_imp.rs
@@ -470,6 +470,9 @@
     }
 }
 
+#[deprecated(since = "0.6.10", note = "removed")]
+#[cfg(feature = "with-deprecated")]
+#[doc(hidden)]
 impl ops::Not for PollOpt {
     type Output = PollOpt;
 
@@ -882,6 +885,9 @@
     }
 }
 
+#[deprecated(since = "0.6.10", note = "removed")]
+#[cfg(feature = "with-deprecated")]
+#[doc(hidden)]
 impl ops::Not for Ready {
     type Output = Ready;
 
diff --git a/src/sys/fuchsia/ready.rs b/src/sys/fuchsia/ready.rs
index 96e3ff0..05126d3 100644
--- a/src/sys/fuchsia/ready.rs
+++ b/src/sys/fuchsia/ready.rs
@@ -132,6 +132,9 @@
     }
 }
 
+#[deprecated(since = "0.6.10", note = "removed")]
+#[cfg(feature = "with-deprecated")]
+#[doc(hidden)]
 impl ops::Not for FuchsiaReady {
     type Output = FuchsiaReady;
 
diff --git a/src/sys/unix/ready.rs b/src/sys/unix/ready.rs
index cb5248f..bb3b268 100644
--- a/src/sys/unix/ready.rs
+++ b/src/sys/unix/ready.rs
@@ -1,4 +1,4 @@
-use event_imp::{Ready, ready_from_usize};
+use event_imp::{Ready, ready_as_usize, ready_from_usize};
 
 use std::ops;
 use std::fmt;
@@ -306,10 +306,13 @@
 
     #[inline]
     fn sub(self, other: UnixReady) -> UnixReady {
-        (self.0 & !other.0).into()
+        ready_from_usize(ready_as_usize(self.0) & !ready_as_usize(other.0)).into()
     }
 }
 
+#[deprecated(since = "0.6.10", note = "removed")]
+#[cfg(feature = "with-deprecated")]
+#[doc(hidden)]
 impl ops::Not for UnixReady {
     type Output = UnixReady;
 
diff --git a/src/sys/windows/tcp.rs b/src/sys/windows/tcp.rs
index 19260ab..4c11c5a 100644
--- a/src/sys/windows/tcp.rs
+++ b/src/sys/windows/tcp.rs
@@ -392,7 +392,7 @@
             _ => return,
         }
 
-        me.iocp.set_readiness(me.iocp.readiness() & !Ready::readable());
+        me.iocp.set_readiness(me.iocp.readiness() - Ready::readable());
 
         trace!("scheduling a read");
         let res = unsafe {
@@ -448,7 +448,7 @@
                       me: &mut StreamInner) {
 
         // About to write, clear any pending level triggered events
-        me.iocp.set_readiness(me.iocp.readiness() & !Ready::writable());
+        me.iocp.set_readiness(me.iocp.readiness() - Ready::writable());
 
         trace!("scheduling a write");
         loop {
@@ -709,7 +709,7 @@
             _ => return
         }
 
-        me.iocp.set_readiness(me.iocp.readiness() & !Ready::readable());
+        me.iocp.set_readiness(me.iocp.readiness() - Ready::readable());
 
         let res = match self.inner.family {
             Family::V4 => TcpBuilder::new_v4(),
diff --git a/src/sys/windows/udp.rs b/src/sys/windows/udp.rs
index d8eb56f..d924732 100644
--- a/src/sys/windows/udp.rs
+++ b/src/sys/windows/udp.rs
@@ -102,7 +102,7 @@
         }
 
         let interest = me.iocp.readiness();
-        me.iocp.set_readiness(interest & !Ready::writable());
+        me.iocp.set_readiness(interest - Ready::writable());
 
         let mut owned_buf = me.iocp.get_buffer(64 * 1024);
         let amt = owned_buf.write(buf)?;
@@ -136,7 +136,7 @@
         }
 
         let interest = me.iocp.readiness();
-        me.iocp.set_readiness(interest & !Ready::writable());
+        me.iocp.set_readiness(interest - Ready::writable());
 
         let mut owned_buf = me.iocp.get_buffer(64 * 1024);
         let amt = owned_buf.write(buf)?;
@@ -299,7 +299,7 @@
         }
 
         let interest = me.iocp.readiness();
-        me.iocp.set_readiness(interest & !Ready::readable());
+        me.iocp.set_readiness(interest - Ready::readable());
 
         let mut buf = me.iocp.get_buffer(64 * 1024);
         let res = unsafe {