Move hamming.py into algorithms and format docs for hamming_distance

Hi,
I'm reviewing your pull request to NetworkX with Hamming distance functions.  I've moved the file into the algorithms folder and changed the formatting of the doc_string for your first function.  Could you update the doc_strings into a similar format for the other functions?  Also I added some lines at the top--see if you are OK with the more verbose names I proposed there.  Its the networkx style not to abbreviate in function names.  When the doc_strings are updated you can push back to your master branch and it will update the pull request too.  Let me know if git causes trouble.

Finally, we will need some simple tests before merging.  If you can come up with some simple graphs and compute correct values for them that's a good start--and maybe all the testing we need at first.  You can create a test_hamming.py file in the tests directory inside algorithms (use test_cycles.py as an example if you want).  Or if that's too much, just put the code for the tests in your hamming.py file after a line like: 

if __name__ == "__main__":
    #test_code here

Thanks!