Add tests for empty and reverse
Implement reverse and make reverse test actually call reverse