Add comments
Remove unused parts
Expose some more functions
Use the library's free_energy()

Test pass
Use better names
Reuse subroutines
Move assert statements out of subroutine
Move free_energy2() into ofdft_fe.f90