Update API to keep client state

Rather than just fetch/update/delete methods, provide a resource object to consumers.  This lets users not have to worry about internal connection state as much.