Clone submodules of dependencies

Some dependencies might contain git submodules and therefore should be
cloned with the --recursive option. Existing behavior is preserved.
Add support for alternate download method

This patch adds support for injecting other download methods than clone
to be used to download dependencies. It will allow to use git submodule
add instead of git clone for example.

It also reduces the amount of monkeypatching needed to test the download
operation. This is good since monkeypatching is manipulating global
state and this should be avoided (patching decorators and context
managers mitigate this issue).
Add a git submodule downloader

Since we will massively use git submodules to track our history, this
commit adds a downloader that uses git submodules instead of plain git
clones.

It is not yet added to the real application but the code is there.
Add git submodules commandline option

This commandline switch allows the use of git submodules instead of git
clone.
Skip dependencies with no package.yml

This patch adds the ability to simply skip dependencies for which no
package.yml file can be found.

This was needed because Travis CI will need to be able to build
applications depending on uc/OS-III but we cannot give public access to
this repository since it is a closed source project.
Packager will simply skip uc/OS-III package now, since it is not needed
to build and run unit tests.
TDD watcher: Only show build error messages

Before, the TDD watcher showed all the build messages, even when nothing
was wrong, which made reading the output harder. With this patch, it
will only show build errors (which go on stderr) and the test output
(which is very readable).
Parse arguments before trying to open package.yml

Without this change, when you asked for packager built in help, if no
package.yml was present it would exit before displaying any help.
Move tests into a package
Update the TravisCI build to use test discovery
Add requirements file
Use requirements file for Travis builds
configurable dependency directories
Use unittest2 for test discovery

Apparently it is the only way to have reliable cross python version test
discovery.
find possible target architectures from package.yml
Fix unit tests for target detection
Code cleanup
Merge pull request #9 from Stapelzeiger/dependency-dir

configurable dependency directories
Add a function to convert location data to filemaps
Modified dependency code to handle custom location

The code was modified so now we can provide custom locations for modules
in the form of a dictionary like object mapping object name to its
folder.
Split tests in various files