Edges container change
The majority of this is changing the container from std::list to std::vector. Most of the call sites bind by const& when a copy isn't required, which will result in less memory allocation when #399 is resolved.
Compiler warnings were also fixed for the use of potentially uninitialised member variables in
Removed calls to C library and replaced with std::abs where possible.
Left breadcrumbs for C++11 cleanups.