Fix Memory Leak

* All: [BUG FIX] Corrected the issue that the specified key is not unique at the method DeleteObject(SIZE_T) of PersistableHeapProvider/DisposableHeapProvider.
* All: Made Log to be able to be disable by pre-processor macro. The purpose is to make the memory leak inspection easier.
* Utilities: Against the point that uses intrusive_ptr, changed the design to the form that has more memory leak resistant. See also the following thread: [c++ - How to use Boost's intrusive_ptr effectively? - Stack Overflow](http://stackoverflow.com/questions/9856893/how-to-use-boosts-intrusive-ptr-effectively).
* Utilities: To TempPtr, added the method Clear, and also made it to be called at the operator= when an empty value is passed.