Fix sign error in FCI interpolation
Fill in Grad_par_FCI function
Complete physics model and tidy up FCI example
Add FCI class for general use in physics models

Notes on usage:
	- FCI::Grad_par and FCI::Grad2_par2 are NOT straight replacements for
	  difops::Grad_par and difops::Grad2_par2, as the FCI class requires
	  y to represent the toroidal angle and z the poloidal angle.
	- FCI constructor requires a Mesh* as the single argument
	- For OOP physics models, add an FCI member object and supply the
	  Mesh* in the initialisation list for the physics model
	  - e.g. class MyModel : public PhysicsModel {
	  		 private:
			   FCI fci;
			 public:
			   MyModel() : fci(*mesh) {}
			 };
Add option to keep interpolated fields in FCI
Merge branch 'fci' of github.com:boutproject/BOUT-dev into fci

* 'fci' of github.com:boutproject/BOUT-dev:
  Adding simple wave in a sheared slab test case
Add metric tensor to FCI derivatives

Also add CHECK messages and specify default value for keep argument,
rather than having multiple declarations/definitions.
Add FCI::Div_par

Also change function comment format to match difops.cxx
Merge branch 'fci' of github.com:boutproject/BOUT-dev into fci

* 'fci' of github.com:boutproject/BOUT-dev:
  Fixed wave-slab example