L3 update

Here is the updated Muon HLT L3 reconstruction code. It contains a number of classes which have been modified that the current Cascade algorithm uses in addition to new classes. The modifications and new code can be used as part of a new algorithm which will replace the Cascade algorithm. However, the current Cascade algorithm can still be used.

Relevant presentations include: https://indico.cern.ch/event/297801 and https://indico.cern.ch/event/351559

The code has been updated for multithreading and updated with fillDescriptions() also.
@Dr15Jones 
is it possible to just do something that doesn't throw?
e.g

```C++
//check the seedRef is non-null first; and then
auto a = dynamic_cast<const L3MuonTrajectorySeed*>(&*tk->seedRef())
useL3MTS = a != nullptr;
```