create! does not return created object

It can be useful in post-vote processing.
Returning the object is more reliable than trying to find the vote just cast by querying.

I didn't change any tests, I only **added a few** which ensure that now the vote object is returned.

Code change summary:

```
        # create! does not return the created object
        v = Vote.new(:vote => direction, :voteable => voteable, :voter => self)
        v.save!
        v
```