BitfieldMan: Rewrite getCompletedLength and countMissingBlockNow

Rewritten so that no memory allocation is required for these
functions.
Fix compile error with i686-w64-mingw32-g++ 4.6

Which does not support constructor delegate
Add countSetBitSlow tests
Use std::unique_ptr instead of array_ptr
Use std::unique_ptr for HttpResponse instead of std::shared_ptr
Use std::unique_ptr for HttpRequest instead of std::shared_ptr
Use std::unique_ptr for StreamFilter instead of std::shared_ptr
Use std::unique_ptr for LpdMessage instead of std::shared_ptr
Use std::unique_ptr for URISelector instead of std::shared_ptr
Use std::unique_ptr for PieceSelector instead of std::shared_ptr
Use std::unique_ptr for StreamPieceSelector instead of std::shared_ptr
Fix array version make_unique is invoked for 1 size_t arg accidentally
BinExpr, UnExpr: Make copies of args so that we can use them with rvalues
Use std::unique_ptr for ARC4Encryptor in PeerConnection and MSEHandshake
Return nullptr directly where std::unique_ptr is expected

The constructor of std::unique_ptr which takes nullptr is not explicit
so we can return nullptr directly.
Return nullptr directly where std::shared_ptr is expected

The constructor of std::shared_ptr which takes nullptr is not explicit
so we can return nullptr directly.
Use std::unique_ptr to receive BtMessage
Merge remote-tracking branch 'remotes/upstream/master' into mtx