don't use at() where bounds check is already done

`std::vector::at()` does an additional bounds check eventually throwing
`std::out_of_range` exception. This is useless at places where the
bounds are already checked and/or used. In such situations one should
use `std::vector::operator[]()` which is considerably faster.
controller: get_finest & get_coarsest

new handy accessor methods for the finest and coarses level hold by a
controller