move MoveWrapper to folly

Summary: Add MoveWrapper to folly.

@override-unit-failures

Test Plan: arc unit

Reviewed By: hans@fb.com

FB internal diff: D1030005
updating folly makefiles

Summary:
Update Makefile.am with recent files.

Leaves out io/Compression because it uses lz4, of which there are no prebuilt packages for ubuntu (didn't check fedora, but I assume it is the same story there)

Test Plan: on ubuntu 12.10, ./configure, make, make install

Reviewed By: tudorb@fb.com

FB internal diff: D1030008
Fix passing MoveWrapper into lambdas

Summary:
GCC can't compile code that passes a MoveWrapper into a lambda
in some cases. For example if the capture list has
[someConstObject, myMoveWrapper], gcc 4.7 fails. This specific case
works with gcc 4.8, but other cases (e.g. [this, myMoveWrapper]) still
fail.

This diff is a hack that makes code like that compile. It can be
removed, along with MoveWrapper itself once we move to C++14 with its
extended lambda syntax.

Test Plan: fbmake

Reviewed By: hans@fb.com

FB internal diff: D1032585
make move-ctor and destructor noexcept for folly::Optional

Summary:
as per summary
@override-unit-failures

Test Plan: run unit tests

Reviewed By: delong.j@fb.com

FB internal diff: D1031726
Update Overview.md

Summary: just added few words about Subprocess.

Reviewed By: delong.j@fb.com

Test Plan: none
Add Formatter::writeTo(FILE*)

Summary: Because I needed it.

Test Plan: test added

Reviewed By: delong.j@fb.com

FB internal diff: D1032179