generate less code for exceptions (in common cases)

Using `PyErr_Set{None,Object}` for built-in exceptions can save a few hundred lines of C code per module because we don't need the whole `__Pyx_Raise` machinery. The new code is not pretty, but it even seems to improve performance; a simple function such as

```python
def foo():
    try: raise ValueError('foo!')
    except: pass
```

now runs in 36ns, vs. >70ns previously.