Finish implementing comments reply (#17), including test coverage and basic styling