Modificações:

Alterado o retorno do StayPointDetection. Agora não precisa mais fazer cast, pois o retorno fica ITrajectoryModel<StayPoint,Interval> ao invés de ItrajectoryModel;
Melhorado a validação de Parameters. Agora, cada Parameters contem um método validate(Parameters param) que valida os parâmetros. Para isso ser realizado, cada algoritmo tem que definir seus Parameters com nome do parametro e tipo do mesmo. Depois é só chamar o método validate.
Modificações:
Exemplo de algoritmo de clusterização