Fix for rustc update 2014-12-15
Correct output for empty structs.

This fixes a bug where empty C structs would be outputted as

    struct Struct_Foo {
    }

instead of

    struct Struct_Foo;
Updates tests in macro.rs and cmath.rs.

macro.rs
- Removes make_string_vec in favor of the vec! macro.
- Updates test_parse_process_args with vec!.

cmath.rs
- Adds needed 'extern crate libc;' declaration.
- bindgen! invocation now references math.h as "/usr/include/math.h",
  which should be pretty universal.  Clang was not able to find the file
  using just "math.h".
- Moves contents of main method into a #[test] method.
Improves argument name parsing in function pointers.

Previously, all function pointer types always had their arguments bound
as arg1, arg2, etc.  This change preserves the argument names, when they
are available.

parser.rs
- Uses the type cursor to visit children and gather argument names and
  types.

tests/function_pointer.rs
- Binds tests/headers/function_pointer.h and ensures that argument names
  are correctly bound.

tests/util.rs
- Provides some quick-and-dirty functions to allow the comparison of
  bindgen output with known-good output.