set_state now returns errors only, else it returns nil

This takes the burden off of the API user to have to parse the results
that were previously returned to determine if there were any errors as
the result of the operation. Now, the caller can simply test for nil.