Auto merge of #172 - malisas:malisa-semantic-parent-call, r=fitzgen,emilio
Auto merge of #172 - malisas:malisa-semantic-parent-call, r=fitzgen,emilio

Make clang::Cursor::fallible_semantic_parent make ffi call

This PR fixes #120 . `clang::Cursor::semantic_parent` now just calls `clang::Cursor::fallible_semantic_parent`, and the ffi call has been moved into `fallible_semantic_parent`.

This change broke a number of tests which call `is_toplevel()` (which itself calls `semantic_parent()`):
> panicked at called Option::unwrap() on a None value

So I re-wrote `is_toplevel()` to call `fallible_semantic_parent()`, which returns an `Option<Cursor>` type instead.

jdub/rust-bindgen,emilio/rust-bindgen,emilio/rust-bindgen,rust-lang/rust-bindgen,jdub/rust-bindgen,rust-lang/rust-bindgen,rust-lang/rust-bindgen,jdub/rust-bindgen,emilio/rust-bindgen,emilio/rust-bindgen,emilio/rust-bindgen,jdub/rust-bindgen,rust-lang/rust-bindgen