issue-612: added missing include for std::min

Otherwise Visual Studio 2013 rightfully complains
issue-613: remove friend declaration from HeapLeakChecker

This applies patch by davide.italiano@10gen.com:

heap-checker.h contains the following friend declaration of main:
friend int main(int, char**).

C99 allows another declaration of main, i.e. int main(int, char**,
char**), and if code uses it and includes the heap-checker header,
this might result in a conflict, e.g.

error: declaration of C function 'int main(int, char**, char**)' conflicts with
 int main(int argc, char* argv[], char** envp)

Actually the comment above the friend declaration of main() mentions
that this is required to get the unittest working and for other
internal usage, but I'm not completely sure if this is true as long as
I'm able to build and run the unittest removing the declaration.
Fix getpc_test for PPC64v2 LE

This patch fix the PPC64 guard to get the function address for PPC64v2.
It removes the use of an indirection (to get the ODP text address),
since the PPCv2 does not have function descriptors.
speed up MallocExtension::instance()

It was reported that pthread_once is expensive, especially on ppc.

In new implementation in hot path instead of doing potentially
expensive atomic read with barrier, we do just plain read.

It's slightly less robust than older implementation, but it should be
faster.

New code is making assumption that programs do not spawn threads
before main() is called. And therefore all variables & modules are
initialized before threads are created. Which looks like pretty safe
assumption. With that assumption, doing plain read is safe, because
current_instance is initialized as part of module init and therefore
before threads are spawned.

This patch is based on feedback of Adhemerval Zanella.
issue deprecation warning on use of google/ headers
added tc_malloc_skip_new_handler

This is port of corresponding chromium change at:
https://codereview.chromium.org/55333002/

Basic idea is that sometimes apps that use tc_set_new_mode in order to
have C++ out-of-memory handler catch OOMs in malloc, need to invoke
usual malloc that returns 0 on OOM.

That new API is exactly for that. It'll always return NULL on OOM even
if tc_new_mode is set to true.