Close #521. Allow MODE to work on all datatypes

This change allows MODE to work on string as well as boolean and null
values. It also introduce another numerical argument that specifies how
many modal values it will return (although it is disabled)
DRY and modify the code to be idiomatic
Add MODE tests and fix a bug
Disable the second argument of the MODE aggregation
update the changelog

[skip ci]