fixed QP encoder

Squashed commits:
- fixed qp encoder & non-utf8 charset bug
- fixed errors from native qp encoder
- fixed QP encoder tests
Fixed varying boundary length
merged branch jfsimon/issue-288 (PR #306)

This PR was merged into the master branch.

Discussion
----------

Fixes qp encoder & non-utf8 charset bug

Fixes #288 & shoulf fix #315 (to be confirmed)

Commits
-------

46fefda fixed QP encoder
merged branch burci/bug-toolongboundary (PR #316)

This PR was merged into the master branch.

Discussion
----------

[error] Varying boundary length

At Swift_Mime_Headers_ParameterizedHeader::_createParameter boundary can be encoded because the length is bigger then allowed by $_maxLineLength.

Too long boundary in header after the encoding:

 boundary="=?utf-8?Q?=5F=3D=5Fswift=5Fv4=5F1365410405=5F16224=5F48336961651628265cb?=
 =?utf-8?Q?7d58=2E54152349=5F=3D=5F?="

Original boundary:
--_=_swift_v4_1365410405_16224_48336961651628265cb7d58.54152349_=_

where:

unix timestemp : 1365410405
pid : 16224  // The maximum for 32 bit systems would be 32768, for 64 bit 4194304
uniqid(mt_rand(), true) : 48336961651628265cb7d58.54152349 // uniqid('', true)

Max values, lengths:

pid : The maximum for 32 bit systems would be 32768, for 64 bit 4194304 length: 1->7
uniqid('', true): length: 23
mt_rand(): max value 2147483647, length: 1->10

Both the getmypid() and mt_rand() function returns varying length result, anyway I don't know if pid in boundary is a good idea.

Maybe using md5 is better way to limit the max length and getting bigger entropy...

Thx @smatyas for the help.

Commits
-------

4809199 Fixed varying boundary length
updated CHANGELOG