Alter project layout to use applications as concern separation rather than directories. 

Having src files in subdirectories is not standard erlang. It is an attempt to keep logically grouped modules together, but in the end does not do anything of the sort. Erlang's applications is the solution to this, and thus this pull request changes the subdirectories in the top level source into applications.

This structure more strongly encourages the following:

* keeping independent systems truly independent.
* Keeping better track of system dependancies as each app defines which other apps it uses.

Furthermore, if the time comes to split up the applications into their own repositories, most of the work has already been done.

The following tasks remain to be done:

- [ ] Ensure proper dependency tree for each app.
- [ ] Easier testing of individual apps.
- [x] Ensure each sub-app is available in a built release.
- [x] Ensure top app and each sub app is built by the top make file.
- [x] Ensure tests are run for all apps when run by the top make file.