Additinal parameters for spherical shell initial conditions and geometry

Updated geometry_model/spherical_shell.cc
Can specify number of mesh cells created in the first time step.

New parameter:
  int Cell count

----------------------
Updated initial_conditions/spherical_shell.cc
Can specify the number of convective cells and their orientation.

New parameters:
  int Lemniscate number
  double Rotation offset
Replay Joey Durkin's second set of changes.

Something had gone wrong with these patches and they ended up deleting and re-creating a lot of files. This commit simply applies all functional changes that were part of the commit gone wrong.
Update a few pieces of the documentation.
Reunite a function with its documentation.
Reindent.
Address Timo's review comments.
Document the parameter better.
Add a test to verify that we can create meshes with different numbers of cells in the perimeter.
Address a number of issues brought up in review.

Specifically:
- Add changelog entries.
- Add a test for the hexagonal initial temperature model.
- Unconfuse myself by moving functions belonging to the same class closeby.
- Minor cleanup.
- Fix descriptions of tests at the top.
- Add a test for the octagonal perturbation.
- Add another test.
Merge pull request #167 from bangerth

- generalize spherical hexagonal perturbation
- spherical shell now takes the number of circumferential cells

Conflicts:
	doc/modules/changes.h