Make all PDO resources use the smart allocator

Someone was noticing that PDO had a memory leak that was fixed by assigning null to the PDOStatement. That helps a ton.

Upon further examination, all the PDO things were not using the smart allocator, so they would leak at the end of the request. Also, there was lots of `std::string` properties that would leak even if these things were smart allocated. I fixed both these issues in this diff.

Closes #1676

Reviewed By: @paroski

Differential Revision: D1152557