Feature/travis ci

travis-ci integration for the main build, running locally executed unit tests and and remote on-device memory tests and integration tests.

This extends the make system to allow user apps and tests to exist outside the firmware sources (in `applications` and `tests` directories respectively) base in part on work done in #226.