Fix #10444: MPI archive failure

Add "const" to save_override for archive::class_id_type and archive::version_type.  WIthout it, they do not participate in overload resolution when called with a const argument, and the default template function is called.  This leads to saving 4 bytes for archive::version_type, but only loading 1 -- all subsequent load operations are then off by 3 bytes.
test_any was actually nly testing the firt request due to a typo in the for loop.
There are 2 function in nonblocking_test. Which makes debuging less convenient with no benefit.
In wait_any, we need to test for compound recv of serialized object that just got the size but not the body (that is, request[1] == null & handler != null).

Note that in:
if (current->m_requests[0] != MPI_REQUEST_NULL &&
        (current->m_requests[1] != MPI_REQUEST_NULL ||
         current->m_handler)) {
      if (optional<status> result = current->test())
        return std::make_pair(*result, current);
    }

I suspect the 3 line test should be removed and every thng handled in request::test (which is supposed to tell wheter we have a complete request).
But I have no idea why it was done like that in the first place.
The documentation at mpi-forum moved from http://www.mpi-forum.org/docs/mpi-11-html to http://www.mpi-forum.org/docs/mpi-1.1/mpi-11-html. Changed the documentation to reflect that.
In short term, we might want to move to MPI 2.x documentation.
Small typo, we had double slashes in external URL.
Did not hurt, but it nicer this way.
Merge pull request #15 from aminiussi/map-c-update

Propagate change made in mpi-forum documentation.
A mpi-1.1 directory was inserted on the web-site.
Python section was missing [endsec]
Merge pull request #17 from aminiussi/develop

Python section was missing [endsec]
Merge branch 'develop' into nonblocking_test_split
Merge pull request #13 from aminiussi/nonblocking_test_split

 split nonblocking_test in two functions, one to run all tests and one to run simgle tests.29292
Merge branch 'develop' into test_any_bug
Merge pull request #12 from aminiussi/test_any_bug

Only the first request was tested in test_any. We now test all of them.
Merge branch 'develop' into compound_recv_wait
Merge pull request #14 from aminiussi/compound_recv_wait

Wait_any is missing some compound recv with intel MPI.
In practice, this change should only affect implementations which, when stacking 2 send or 2 recv will only execute the second one when the first one is completed. As a result, when testing a compound recv on compound send, we get a catch22. This merge fixes that problem.
When calling MPI_Topo_test, explicitly deal with MPI_COMM_NULL as it is not a legal value. Although it is what is return for leftovers process when creating cartesian grid or graphs.
The version 3 of the MPI standard is out now.
Upgraded really old (1.1) API to 2.x.
Merge pull request #21 from aminiussi/obsolete

upgrade MPI 1.1 stuff to MPI 2.x stuff
Merge branch 'develop' of github.com:boostorg/mpi into nulltopo
Merge pull request #20 from aminiussi/nulltopo

MPI_COMM_NULL is not a valid argument for MPI_Topo_test.
But it is used to indicated leftover processes when creating graph communicator or cartesians grids (for exampl, when you create a 2X2 grid from a 5 process communicator).

So we need to deal with it as a special case.