Add safer interface for A* path with callback

Instead of forcing the user to deal with the unsafe code directly by having to
implement the callback passed to `TCOD_path_new_using_function` (which involves
having to cast from `*void` to whatever type you're using for your user_data and
also making sure the the path object doesn't outlive user_data) we let the users
pass in a closure and handle all the nitty-gritty ourselves.

A similar treatments awaits the Map-based version (the path object should own
the Map else we're looking at another memory safety issues when the Map goes
away before the path does) and the Dijkstra variants.

We need tests for this.
Remove the unsafe Path interface
Drop the `path` module for now

None of the other top-level objects are namespaced yet, let's keep things
consistent. We can split things into modules when we'll have implemented more
stuff and it starts getting messy.
Add a build script

This just copies any lib/*.so or lib/*.dylib files to Cargo's OUT_DIR so we can
link against the actual libtcod.

This is necessary for building the examples and running tests (which build
examples, too).
Add a simple path finding example
Fix memory safety bugs exposed by the example

Rust was freeing the memory pointed at by `cb` in the tcod callback because
`transmute` moves ownership.

We transmute `cb` back to `*mut void` to prevent that from happening.
Convert the callback to a reference not box

Transmuting to a reference doesn't move ownership so we can drop the
"sink *void" workaround.
Make the path finding example more comprehensive

Also fixes a memory safety issue in `Path::get`: you can't read from a consumed
path.
Merge pull request #8 from tomassedovic/safe-path

Safer path bindings