Add more singleton tests and fix class return

The return value of the following was getting lost before this change:

```
bar = String.new
baz = class << bar
  self
end
```