Fix for bugs 17632 and 17724.
The isLValueReferenceType function checks to see if the QualType's canonical type is an LValueReferenceType, and not if the QualType itself is an LValueReferenceType. This caused a segfault when trying to cast the QualType's Type to a LValueReferenceType. This is now fixed by casting the result of getCanonicalType().
In addition, a test was added to isConsumableType to prevent segfaults when a type being tested by the analysis is a reference to a pointer or a pointer to a reference.
Link to bugs:
http://llvm.org/bugs/show_bug.cgi?id=17632
http://llvm.org/bugs/show_bug.cgi?id=17724