Disable cURL "Expect:" header

Summary:
Fixes T2612. That task has a pretty good explanation of this issue. It's been on my radar for a while, but basically:

  - By default, cURL sends "Expect: 100 continue" with some requests (I believe POSTs over a certain size).
  - By default, lighttpd rejects "Expect: 100 continue" with a 417 error and kills the request.
  - There's no practical benefit for us to sending this header (it's "nicer", but probably a little slower if anything).
  - The "correct" way to disable this behavior is to add an empty "Expect" header.

Test Plan: Confirmed resolved by @jucrouzet in T2612.

Reviewers: vrana, chad

Reviewed By: chad

CC: jucrouzet, aran

Maniphest Tasks: T2612

Differential Revision: https://secure.phabricator.com/D5136
Implemented non html version of utf8 hard wrap

Summary: phutil_uft8_hard_wrap function and unit test to test behavior

Test Plan: Unit tests

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D5142
Restore older SimpleOptions parsing behavior for values with spaces

Summary:
Previously, you could do `name=blah blah blah`. After the recent update, we require spaces to be quoted.

Instead, permit unescaped spaces in values but not in keys. This fixes some older memes from pre-escape times.

Test Plan: Ran unit tests.

Reviewers: vrana

Reviewed By: vrana

CC: aran

Differential Revision: https://secure.phabricator.com/D5161
Introduce libphutil UTF8 case changing functions

Summary:
Ref T2632. To fix one of the issues there, we need to be able to call `ucwords()` on utf8 strings. Currently, `ucwords()` mangles utf8 strings destructively. For example:

  $ php -r 'echo ucwords("\xE9\xBA\x9F");' | icat
  \xc9\xba\x9f
  ^^^^
  WTF?

Write a wrapper function instead. These wrappers should work okay if `mbstring` is available; probably not as well without it.

I've been very conservative in my implementation of ucwords() to avoid doing anything crazy with languages I don't speak. We can refine these later.

Test Plan: Added unit tests.

Reviewers: AnhNhan, chad, vrana

Reviewed By: AnhNhan

CC: aran

Maniphest Tasks: T2632

Differential Revision: https://secure.phabricator.com/D5191
Merge remote-tracking branch 'upstream/master'