Better tests

- Uses `unittest` completely and does not depend on `nose`
- Add tests for package order and repo order (in channel.json)
- Add *optional* tests **for all repositories** in channel.json (after downloading all of them) which are run when `tests/test.py` is executed directly
- Add `description` to the allowed keys for packages
- Add tests for `date` property in releases (only tested with custom repos)
- Allow "-x32" and "-x64" suffixes for `platforms`

I also reordered some packages to make the tests pass.

This is from `alternative_tests` branch, but rebased on `master` + an extra commit for fixing package order that was introduced later.