Add get_users method and extract duplicated request code

Hey Hamza!

I did a few things:
- pulled the actual request code into a separate method (`request()`), where before there was some repetition of setting up and making the requests.post() call
- same thing with the auth/login check, so the error behaviour/message is only defined in one place (`_check_authenticated()`)
- added a method to get specific user(s)
- edited the `get()` method to request the Piazza endpoint named "content.get", instead of "get.content", because that's what I see when watching the request in Chrome's dev tools

I think I've used the same coding style, let me know what you think! Sorry for the complicated pull.
This is an interesting method merging dictionaries. :P

I would think
```python
"params": dict(nid_key=nid, **data)
```

is just the tiniest bit more readable but that's extreme nitpicking.