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.

typedef typename Base::iterator_category iterator_category;
typedef typename std::size_t value_type;
typedef typename Base::difference_type difference_type;