[#855] Honor q value for accept languages, and allow language without country to match language with country
Function.unlift converts A => Option[B] to PF[A,B], so use it
Improved language handling

Fixes #820 - matching country should be case insensitive
Fixes #1229 - q value sorting should be stable on order in request
header
Merge pull request #820 from jroper/messages-matching

i18n lang should ignore uppercase/lowercase