Deque#pop, Deque#shift: when empty, return empty object of same class

Currently when calling `#pop` or `#shift` on an empty subclass of `Deque` we return an empty `Hamster::Deque` instead of the subclass.

```ruby
class MyDeque < Hamster::Deque
end

my_deque = MyDeque.new
my_deque.class
# => MyDeque
my_deque.pop.class
# => Hamster::Deque
```

This PR fixes it (uses `self.class.empty`).