Spatial optimization for make_shared for arrays

Saves up to sizeof(void*) + sizeof(size_t) bytes for make_shared and saves
sizeof(void*) + sizeof(size_t) + sizeof(A) bytes for allocate_shared where A is the
supplied allocator type.
Cosmetic changes in make_shared and make_unique
Fix use of size in make_shared for arrays
Fix use of ms_init in no C++11 allocator case
Dave's quick_allocator added, #define BOOST_SP_USE_QUICK_ALLOCATOR to make shared_ptr use it.

[SVN r17087]
Quick_allocator updates.

[SVN r17267]
Added BOOST_QA_PAGE_SIZE.

[SVN r17270]
Made the default page size 512 (g++ 2.96 on Red Hat 7.2 dislikes 496.)

[SVN r17272]
Fixes for Comeau with Borland as backend.

[SVN r17588]
-Wundef fixes.

[SVN r18788]
_MSC_VER use clarified.

[SVN r20992]
Converted to Boost Software License, Version 1.0

[SVN r24055]
Split sp_counted_base into no threads (nt), win32 lock-free (w32) and pthreads (pt)

[SVN r27729]
<intrin.h> appears broken.

[SVN r27737]
New version of call_once for win32

[SVN r30847]
Added interlocked compare/exchange for pointers, and interlocked_read for values and pointers

[SVN r30941]
InterlockedCompareExchangePointer is only intrinsic on 64 bit platforms, otherwise it's just a synonym for InterlockedCompareExchange

[SVN r30951]
Added InterlockedExchangePointer

[SVN r31010]
Added BOOST_INTERLOCKED_EXCHANGE_POINTER in all branches of the #if

[SVN r31012]
Removed :: qualification on _Interlocked functions

[SVN r31097]