Derived classes may access this.
Less overshoot in HTTP bandwidth graph for higher values.
Add debug function 'is_single_threaded'

Usage:

AIThreadID foo(AIThreadID::none);

...

  llassert(is_single_threaded(foo));
...
  llassert(is_single_threaded(foo));
...
etc

The first call to is_single_threaded(foo) remembers the thread,
and after that it is enforced that any call from anywhere that uses foo
is done by the same thread.

If AIThreadID::none is omitted then the thread is enforced to the thread
that creates the AIThreadID.
Compile fix.

Move the destructor (and copy constructor while I was at it) to the .cpp
file in order to avoid instantiating the destructor of
boost::intrusive_ptr<ThreadSafeBufferedCurlEasyRequest> from a header,
which would require the class ThreadSafeBufferedCurlEasyRequest
to be defined in that header, which is unnecessary. In other words,
this avoid the need to include "aicurl.h" in headers using
AIPerService[Ptr].

Also fixed indentation of a comment.
Stats floater fix up.

Add '(UDP)' after Objects, to show that this is UDP bandwidth.
Do not add the received HTTP texture bytes to gTextureList.sTextureBits,
making it (and the 'UDP Textures' graph) indeed pure UDP.
Don't call LLInventoryModelBackgroundFetch::backgroundFetchCB unnecessarily

Remove LLInventoryModelBackgroundFetch::backgroundFetchCB from
gIdleCallbacks when we don't need it anymore.
Add throttling to HTTP inventory (bulk) fetching.

Call AIPerService::wantsMoreHTTPRequestsFor in
LLInventoryModelBackgroundFetch::bulkFetch to determine if curl is ready
for the next batch or not, instead of using inaccurate heuristic code
that is just guessing a bit.