Update layout.py
Update layout.py

- Improved Fruchterman-Reingold that uses numpy matrix operations

- Use numpy dense eigensolver or scipy sparse eigensolver for spectral_layout

- Simpler random and circular layouts

- Documentation

Fixes #216

Fixes #223

Addresses #229

--HG--
extra : convert_revision : svn%3A3ed01bd8-26fb-0310-9e4c-ca1a4053419f/networkx/trunk%401146

jni/networkx,debsankha/networkx,dmoliveira/networkx,RMKD/networkx,debsankha/networkx,kernc/networkx,aureooms/networkx,goulu/networkx,farhaanbukhsh/networkx,dmoliveira/networkx,beni55/networkx,sharifulgeo/networkx,jtorrents/networkx,chrisnatali/networkx,nathania/networkx,kai5263499/networkx,jtorrents/networkx,ghdk/networkx,harlowja/networkx,aureooms/networkx,kernc/networkx,chrisnatali/networkx,jakevdp/networkx,jcurbelo/networkx,nathania/networkx,bzero/networkx,jni/networkx,aureooms/networkx,dhimmel/networkx,wasade/networkx,jakevdp/networkx,dhimmel/networkx,chrisnatali/networkx,harlowja/networkx,yashu-seth/networkx,michaelpacer/networkx,kernc/networkx,OrkoHunter/networkx,bzero/networkx,blublud/networkx,RMKD/networkx,bzero/networkx,kai5263499/networkx,dhimmel/networkx,ionanrozenfeld/networkx,sharifulgeo/networkx,ghdk/networkx,debsankha/networkx,farhaanbukhsh/networkx,harlowja/networkx,sharifulgeo/networkx,jakevdp/networkx,blublud/networkx,jfinkels/networkx,ghdk/networkx,blublud/networkx,tmilicic/networkx,ionanrozenfeld/networkx,SanketDG/networkx,kai5263499/networkx,JamesClough/networkx,ltiao/networkx,NvanAdrichem/networkx,RMKD/networkx,ionanrozenfeld/networkx,cmtm/networkx,jni/networkx,andnovar/networkx,Sixshaman/networkx,dmoliveira/networkx,nathania/networkx,farhaanbukhsh/networkx