Changes to the iterator scheme of CompleteGraph and Graph and minor updates

The iterator scheme is updated by using inheritance from the std::iterator<> template class, as a way to allow using the iterator algorithms std::next, std::prev, std::distance, etc.
Additionally, a relevant test was added using the standart iterator functions that would fail to compiling when the types are misadjusted.

A minor bug in the EdgeIterator classes of the mentioned Graph classes was overriden to the correct type (std::size_t).

CompleteGraph was also equipped with an insertEdge function with O(1) complexity and the findEdge test was modified to test the new function.

This is the base class, so these items need no further change if I am correct. For the derived classes, the updates should be already incorporated.