Remove resized range requirement

Remove requirement that extent of ResizedDatatype be divisible by the
alignment of basisType.
Limit access to MPI handle-based constructors

By limiting the access to the constructors of objects corresponding to
MPI handles, we can hide implementation details (primarily handle
values and anything under Mpi2Library.lib), and reduce the number of
classes for which scampi caches instances. Caching is only needed now
for instances that use MPI attribute caching.

Fixes #7 and fixes #8.