Adding greedy coloring algorithms

Hi again

We are they guys who wanted to [implement greedy coloring in network](https://groups.google.com/forum/#!searchin/networkx-discuss/adding$20greedy/networkx-discuss/Lj6hJua9qGA/3d1cJ5YPcgQJ)

The implementations of node selection strategies are taken from [Classical coloring of graphs](http://fileadmin.cs.lth.se/cs/Personal/Andrzej_Lingas/k-m.pdf) and the interchange implementation is taken from [Discrete Optimization Algorithms with Pascal Programs](http://www.amazon.com/Discrete-Optimization-Algorithms-Programs-Computer/dp/0486453537).

We would like you to review the code, both with regards to networkx coding style, and if there is something you think could be done better / more python-esque.