Fixed ensure_inclusion_of and ensure_exclusion_of with ranges

Matchers for `ensure_inclusion_of ` and `ensure_exclusion_of` work incorrect with ranges without included upper limit point.

Method Range#last is used now to find max value of range, but this is incorrect, because this method returns the upper limit point whether the value belongs to the range or not.

```ruby
(1..5).last #=> 5
(1...5).last #=> 5
```

It will be right to use ```range.exclude_end? ? range.last - 1 : range.last```.