Use simple caching for book length, do not generate image if exists
Rename book module to bookS
Move tests script into tests folder