Add `bit_width` functions

Add the following functions in `src/util.hpp`:

	template<typename T> std::size_t bit_width();
	template<typename T> std::size_t bit_width(T x);

These functions compute the width in bits of a type or value, providing
a convenient and self-documenting name for the underlying expression,
`sizeof(…) * CHAR_BIT`.

This commit adds two additional header `#include` directives in
`src/util.hpp`. The newly included headers are as follows:

	- `<climits>`, for the macro `CHAR_BIT`; and
	- `<cstddef>`, for the type `std::size_t`.
Add `bit_width` unit tests

Add unit tests for the `bit_width` functions that were added to
`src/util.hpp` in this commit’s parent commit.
Use `std::numeric_limits` rather than `CHAR_BIT`

In the implementations of the `bit_width` functions in `src/util.hpp`,
which were introduced by this commit’s grandparent, obtain the bit width
of a byte as `std::numeric_limits<unsigned char>::digits` rather than
`CHAR_BIT`, per Soliton’s recommendation at 2014-03-17 21:36Z in the
`#wesnoth-dev` IRC channel on the freenode IRC network.

In `src/util.hpp`, this commit removes the `#include` directive for the
`<climits>` header, which was included for access to `CHAR_BIT`, and
adds an `#include` directive for the `<limits>` header, for access to
`std::numeric_limits`.