More Dialyzer

1. Added types for (most of) the greeting record.

2. In dj_al's commit, there was a check the encoding, but running dialyzer shows that the encoding can only ever be an atom, so the other checks in the pattern match were superfluous. I made the simplest change to get dialyzer passing again, but now the encoding_ok check seems superfluous (again, because the encoding field has to be an atom for dialyzer to pass). Should ```make dialyzer``` be added to the travis build?