Improve interface to Parameter manipulation

 - New method GetParameter returns pointer to single ch::Parameter
 - The sampling versions of GetUncertainty and GetShapeWithUncertainty now do all the extraction of the RooRealVars from the RooFitResult on their own. The function ExtractSampledFitParameters is therefore no longer used, saving potentially expensive vector allocations and map-finds in each iteration.
 - Added a version of UpdateParameters that takes a RooFitResult directly
 - A few minor updates to test/Example.cpp
 - Added a "Categories" typedef for use in AddObservations, AddProcesses
Some unrelated updates

 - Support lnU systematics - generally treat the same way as lnN but set Parameter errors to zero on import
 - Don't automatically fix zero bins anymore. Turns out we need to allow it for round-trip tests to work ok. Still emit warning though
 - In ParseDatacard use case-insensitive matching to identify the lines defining processes and observations
 - In ParseDatacard now allow a single line "observation" without a "bin" line above it. Will deduce the bin name from the processes, as long as only one bin is defined there
 - Fix stupid bug in the string input version of WriteDatacard
 - Add RoundTrip.cpp for testing parsing and writing of existing datacards
Merge pull request #563 from ajgilbert/harvester-parameters

Harvester updates