Generalize ThreadLocalContext to not require PDF and FF filenames

This commit changes ThreadLocalContext to only include constructors
that take a Context or ContextCollection as parameters. The old
constructor that took filenames for the PDF and FF files directly
is now gone. This will allow generalizing the code to use other
sources for the PDFs and FFs in addition to just the MSTW and DSS
data files, or even to running computations without the PDFs and
FFs at all.

In order to make this change, the implementation of ThreadLocalContext
was moved into context.cpp and the CMakeLists.txt was updated to
include the proper dependencies on the DSS and MSTW source files.
Make Context an aggregator

Context is now an aggregator (with no user-provided constructor)
so it will be easier to add additional fields to the Context in
the future.