Add test cases for const types

Some may be duplicates...
Handle serialisation of const types

 * Add is_const<T> type trait and remove_const<T> modifier
 * Change all to_value(T&) methods to to_value(T const&)
 * Add value_converter<T const> partial template specialisation (only
   provides to_value() without from_value()
 * Remove obviated hack in operators::to_value()

Problem: at two points, uses const_cast to remove a const
qualification before calling user code (either a json(archive&) method
or a json(archive&, T&) free function). These are supposed to only
call archive::operator&(key_value<T>) which calls only to_value().

There are two ways to accidentially break this:
1. the user can implement a json(), either method or free function,
   that actually modifies the object.
2. the user can implement a value_converter::to_value() that modifies
   the argument

The second problem can probably be adressed by putting more work into
archive::operator&(), but the first issue requires a change in the
interface of the library.
Merge pull request #5 from olafmandel/issue_4

Handle serialisation of const types