Refactor merge implementation

The initial implementation was complicated because I missed the detail
that both list are already sorted, so once one gets empty, the other can
be append entirely to the end
Add answer for exercise 5
Add answer to exercise 6
Add a different approach to pattern matching