Added <, <=, >, >=, ~ and .x range specifications to satisfies()

I'm sure it could use some refactoring since the satisfies() method is kind of long now.