* Everything works, need to clean up
* cleanup
* fix rebase issue
* clang format
* docs
* clang format
* clang format
* address part of review
* Protect against edge case when discarding at end of hand
* Protect undiscard against popping a discarded card that doesn't exist
* Protect against out of bounds access to the `played` cards stack
* fix condition in `select_four_of_a_kind_cards_in_played_hand`
* change `get_played_top() + 1` to `get_played_size()`
* move `can_play/discard_hand` functions to round.c
---------
Co-authored-by: MathisMartin31 <mathis.martin31@gmail.com>