port to rust-0.9

Start porting to rust 0.9.

This is a huge commit, but mostly the changes are that
- box is now a reserved word in rust, so box was renamed to
asymmetricbox
- We can’t dereference new types anymore, so a lot of workarounds for
that
- remove #[fixed_stack_segment]
- some io-apis have changed (only affects tests)

This commit compiles, and all tests pass
Reduced code duplication by using macro_rules

The stream-ciphers, hash-functions and authentication functions now
have generic macros defined in auth_macros.rs, hash_macros.rs and stream_macros.rs

The specific modules just call the corresponding _module macros to fill in their
module bodies.
Removed link_args feature
Cleanup of crate attributes