Debuginfo revamp
Disable struct value printing in debug info tests

This is due to the way different versions of gdb print out structs: older versions have them always spread out with fields on different lines, while newer versions will compactly print them on one line. This makes it hard for the output checker to verify the expected output.
Re-enable struct value printing in debug info tests with gdb pretty printing off
auto merge of #5148 : bleibig/rust/debuginfo, r=catamorphism

This is a rewrite of `create_ty` in debuginfo along with some other functions to modernize it with the current state of the language. The major change is that it no longer takes in an `ast::Ty` and instead only works with a `ty::t`, this is because `ty::t` seems to offer a more complete representation of the rust type system, and most types (like pointers and vecs) do not really need the span info that an `ast::Ty` provides.

What works right now are basic types, tuples and structs. Box, owning pointers, and vecs are not supported even though the code is there, apparently the implementation of these types changed since the debuginfo code was last updated. Also not yet implemented are strings, enums, traits, barefns, and closures, and will cause an ICE if you try to generate debuginfo for them.

This makes progress towards #2012 (or completes it, depending on the criteria).