A survey of Floer homology