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.

...and here you define the same types manually. Please leave these manual definitions and don't inherit from std::iterator!