Add sphinx documentation and improve online docs