added RestrictError, a test for it, and usage in Model.delete() for it.

Hi @josiahcarlson

Here's the PR for https://github.com/josiahcarlson/rom/pull/34

I wrote my rough-draft idea of what a `Restrict` would look like in `rom`, I'd welcome some code review on this.

Some questions:
* I changed the order of another test so as not to trigger the RestrictError. I didn't totally understand the purpose of the test--- hope it's still okay.
* I am only checking the `OneToMany` fields for references to other models.  Since `ManyToOne` maintains the relationship, the opposite condition  (Tentacle being deleted before Octopus) is fine.

I also have a couple of inline comments you can see in the code.  Thanks!
I usually make a "best reasonable effort to be understandable". If you look through the rest of the package, while most lines are under 80 columns, there are a collection that are longer for the sake of readability.

Here, it makes more sense to use something like...

```
for attr, col in self._columns.items():
    if isinstance(col, OneToMany) and getattr(self, attr):
        raise RestrictError()
```

That variant is okay for Python 2.x, 3.x, offers the same semantics in Python, and keeps it under 80 columns.