revise exists_attribute, add delete_attribute, add tests
utility: add has_type(hid_t) and has_scalar_space(hid_t)

added overload function to determine object name given by its hid
redesign of h5xx::attribute

Implemented creation of attributes for h5xx objects with test routines.

added support for attributes of type std::vector, boost::multi_array,
and nullpadded, spacepadded, and variable length string types

added overload function delete_attribute(hid_t, std::string const&)
attribute/boost_array: fix overlong string length
attribute test: clean-up std_vector_string
clean-up utility
attribute: simplify use of delete_attribute

Non-existence of the attribute is not an error.

Clean-up code.
add class h5xx::attribute
utility: specialise get_dataspace etc. for h5xx::attribute

H5Aget_space must be used only for attributes. This is a preliminary
solution only. A better solution will be a class h5xx::dataspace which
constructible from either an attribute or a dataset.
revise attribute/boost_array.hpp

Use the h5xx::attribute class.
added dataspace class
added constructor, write and read functions to the attribute class
utility: add swap() and move()

These functions allow for move semantics in assignment and copying.
file: make copyable and add copy-and-swap assignment.

Calling the copy constructor should be avoided though, it will throw an
exception. True copying can be implemented by calling H5Freopen().

See test for how the move semantics works.
group: delete copy constructor and add copy-and-swap assignment.

The copy constructor is defined, but throws an exception. Use move
semantics instead (see the test suite for how it works). Copying could
be implemented by calling H5Iinc_ref().
attribute: delete copy constructor and add copy-and-swap assignment.

The copy constructor is defined, but throws an exception. Use move
semantics instead (see the test suite for how it works). Copying could
be implemented by calling H5Iinc_ref().

Test construction and assignment.
dataspace: delete copy constructor and add copy-and-swap assignment.

The copy constructor is defined, but throws an exception. Use move semantics
instead. Copying could be implemented by calling H5Iinc_ref().
attribute: add method name() to get the attribute's name

The function get_name(attribute const&) returns the path of the
object the attribute is attached to.
attribute test: write empty string

Currently, writing an empty string is not supported. The attribute is
silently not created, and the test fails upon writing. This may be
solved by explicitly adding the trailing '\0'.
revise example.cpp to use new interface

So far, only the revision of the attribute interface is finished and can
be exemplified. Later, the example will store the array data as HDF5
dataset.