Add simple tests for long double support.

These just consist of printing long double values using printf, passing long
double values as parameters, and returning long double values. Currently the
traces of the latter are useful in visual inspection to check that the
recreated state is accurate, but we should automate this in the future.
Improve GetCurrentRuntimeValueAsImpl<long double>.

Correct implementation for Instructions to retrieve the long double value of the
runtime value. Correct implementation for ConstantFPs to handle IEEEsingle,
IEEEdouble, and x87DoubleExtended. The latter should only be used if the host's
long double uses this format (our rough assertion at the moment is checking
that LDBL_MANT_DIG == 64).
Add RuntimeValue methods to retrieve APFloat or APSInt.

This is a step torwards making the recreated state platform independent. Clients
reading platform dependent values (such as a pointer or long double) should use
the platform independent representations (APInt, APFloat). We can then refactor
the recreated state itself to use these internally, then update the trace format
accordingly.
Add GetRecreatedValue.hpp.

This interface should eventually replace the GetCurrentRuntimeValue methods in
the recreated state library. GetCurrentRuntimeValue will remain for the runtime
library.

There's only partial support currently: retrieving an APInt, APSInt, or APFloat
for a given llvm::Value from a FunctionState. APInt can be retrieved for a
pointer type Instruction, but constant pointers aren't yet supported.
Start removing use of getCurrentRuntimeValueAs.

Fix GetMemoryOfBuiltinAsString<long double> to work, but only for x87 80 bit
long doubles at the moment. (Previously the reported size of long double, 16
bytes, would cause the value to be reported as uninitialized - even if the 10
bytes that are actually used were initialized). This also requires a manual
adjustment of the size before constructing the ValueByMemoryForScalar (we simply
check if the type's float semantics are x87DoubleExtended, and if so we set the
size to be 10 bytes).

Update GetValueOfBuiltinAsString to use GetRecreatedValue.hpp methods getAPInt,
getAPSInt, and getAPFloat.
Correct handling of constant getelementptr expressions to handle struct types
as well as sequential types.
Add a simple test with some constant getelementptr expressions.

These allow us to check that the values are being recreated correctly (currently
through manual inspection only).
Improve pointer support in getAPInt().

Update all instances of getCurrentRuntimeValueAs to getAPInt in MappedValue.cpp.