[#4] Nullable associations

An association can now be marked as "nullable". Nullable associations
will behave exactly the same as non-nullable associations, except:

1. Their value will never be `undefined`.
2. You can explicitly set the value to null without triggering an error
3. Invoking the proxy when the value is null will always return null

A nullable association can be defined by passing `nullable: true` in new
config object that can now be passed as the second argument to
`hasOne()` or `hasMany()`.