[MAT-395] FuzzyCompareOGTerminalContainer tidy

Change the interface of OGTerminal so that:

- it no longer returns a ref to its internal FCOGTC,
- it no longer lazily creates an FCOGTC,
- it no longer requires a `mutable` member,
- and it no longer has to tentatively clean up its FCOGTC.
[MAT-411] Use shared_ptr in FCOGTC

Now that OGTerminal does not hold an FCOGTC, it is possible to
replace FCOGTC's weak_ptr with a shared_ptr, because there is no
self-reference in doing so. Additionally, this makes FCOGTC safer
because it can never be holding an expired shared_ptr.
[MAT-412] Keep _convertor private to  OGTerminal

This prevents outside objects potentially getting access to a
dangling ConvertTo pointer (which they do not need anyway). In
order to implement this chage, convertto.hh needed to not depend
on terminal.hh, to break a cyclic dependency. In order to achieve
this, some forward declarations are added to convertto.hh
Merge pull request #107 from OpenGamma/MAT-411

Fix FuzzyCompareOGTerminalContainer and ConvertTo interfaces in OGTerminal