Do not rely in Link.Rel for values and parameters, allow configuring APIURL and workaround for random errors with schemas with references between resources

@cyberdelia I needed some modifications, so I just went ahead and implemented them.

This includes:
 - PR #26 (support for link.targetSchema)
 - [Allow configuring service's API URL](https://github.com/ernesto-jimenez/schematic/commit/c31814d49983bb0d314737028de3279fc3be0af7) in order to be able to use the same library with different environments by changing the URL.
 - [Workaround to prevent failure when there are references between resources](https://github.com/ernesto-jimenez/schematic/commit/048a1f9899598407ed5e645a7894b2da729b94c6).
 - Values and parameters not relying on Link.Rel: [full explanation, including caveats](https://github.com/ernesto-jimenez/schematic/commit/3b605c549ea3652ca64c1c4a34bcb508eee60f5c)

Let me know what you think.
```schematic``` is adding the ```&``` four lines down inside this conditional.

```golang
if req.URL.RawQuery != "" {
  req.URL.RawQuery += "&"
}
req.URL.RawQuery += v.Encode()
```

Do you want me to change it to something like this?
```golang
	if qv.Kind() != reflect.Ptr {
		v, err := query.Values(q)
		if err != nil {
			return nil, err
		}
		query := v.Encode()
		if query != "" {
			if req.URL.RawQuery != "" {
				req.URL.RawQuery += "&"
			}
			req.URL.RawQuery += query
		}
	}
```

I like it better the way it is now: if we know ```q``` is zero, we just skip passing it to ```querystring``` and we don't need to try encoding it and checking whether anything was encoded. But it's up to you :)