Overload velocity's `ops::Deref` to return underlying f64.

Certain floating point aware functions such as `#min(), #max()`, trig, etc.
are now part of the `num::Float` trait.

The deref allows a safe borrow of the `f64` inside a `Velocity(f64)`.
Computations are  then done on these bare-f64s and the resulting value
is boxed back up in `Velocity` object before being stored.

Conflicts:
	src/units/physics.rs
Impl. deref for `Degrees`

Overloads the dereference op for Degrees.
Uses std-lib methods from the `num::Float` trait to
handle conversion from deg->rad & taking the sin() of the
flight-angle.
f64::round moved to method
Merge branch 'exp/deref-newtypes'

I'm finally merging this b/c `std::f64` seems to have moved almost entirely
into the `std::num::Float` trait.

This implement's Deref for some tuple-structs which only wrapped a double.
They can be quickly deref'd back to a double so that methods from the `Float`
trait can be called.

They still have to be boxed back up into a tuple-struct as all method-boundaries
are still strongly typed.
(Bump submodules for rust@master)
Refactor project structure so we can use Cargo
Mostly mechanical transform of ~ to Box.

* ~T    -> BoxT>
* ~[T] -> Vec<T>
* ~str -> String
Fix import paths
Add 'static lifetime bounds to box objects
Renderer is now parameterized over parent
Fix derives:

* Eq -> PartialEq
* TotalEq -> Eq
Fix borrow / deref issues w/ renderer
Use duration instead of time.

NOTE: Check i64 overflow.
Fix SDL init.
Fix (?) lifetime issues w/ storing sprites insdie tiles.
LHS index always yields immutable pointer; use get_mut() instead.
Remove old warning suppression.

Private types in exported signatures now yields and error; so this suppression
makes no sense.
Fix various `results unused`, etc.
Use indexing where possible
Use `HashMap#entry()` where possible