Create a crypto submodule and move the SHA-1 implementation into it.
Improve the SHA-1 implementation

* Rename struct Sha1State to Sha1
* Remove all use of @ types
* Use fixed length vectors
* Move all of the inner functions from inside sha1() to top level, private functions
* Sha1 instances are now created via Sha1::new()
* Update all constant names to uppercase
* Remove unecessary assert_eq!s
* Remove check_vec_eq() helper function; use vec::eq() instead
Create a Digest trait for common methods on digests and convert the SHA-1 implementation to use it.

The DigestUtil trait was created for helper methods since default methods still have issues.
Implement the fixed output size versions of the SHA-2 digest functions.
remove old_iter

the `test/run-pass/class-trait-bounded-param.rs` test was xfailed and
written in an ancient dialect of Rust so I've just removed it

this also removes `to_vec` from DList because it's provided by
`std::iter::to_vec`

an Iterator implementation is added for OptVec but some transitional
internal iterator methods are still left
Fix/annotate a variety of xfails
xfail tests again for now (issues #7336, #7340)
deal with windows
implement Clone for slices
iterator: implement `collect` with FromIterator

This makes it take advantage of the size hint for pre-allocation.
auto merge of #7207 : DaGenix/rust/sha2, r=pcwalton

This pull request contains an unoptimized implementation of most of the SHA-2 functions (everything but the variable output size versions). I also created a common trait (Digest) for all of the interesting methods for working with digests and updated the existing SHA-1 code to use it. Finally, while working with the SHA-1 code, I got rid of the use of @ types and type objects.

I've tested all functions against the Wikipedia test vectors. Additionally, I tested the SHA-512, 384, and 256 variants against the Java implementations of those digests.

I did my best to try to follow Rust conventions, but, there are so many different conventions in the code base right now that I'm not sure if I'm following the correct one or not. Anyway, I'm happy to rework if I didn't get the coding convention right (or if there are bugs!).
xfail-pretty on un-xfailed test
work around ICE from default method

issue #7341
auto merge of #7334 : thestinger/rust/old_iter, r=Aatch

the `test/run-pass/class-trait-bounded-param.rs` test was xfailed and
written in an ancient dialect of Rust so I've just removed it

this also removes `to_vec` from DList because it's provided by
`std::iter::to_vec`

an Iterator implementation is added for OptVec but some transitional
internal iterator methods are still left
Rename all files with the 'rc' extension
Add the `warnings` lint attribute
Deny common lints by default for lib{std,extra}