Add support for basic type pointer fields

Allows models like:

``` type User struct {
Id    int64
Name  string
Email *string `orm:"null"`
}
```

This helps a lot when doing JSON marshalling/unmarshalling.

Pointer fields should always be declared with the NULL orm tag for sanity,
this probably requires documentation.

Rebased against `develop`, per #655