Externalize apt config 2

This PR is dependent on PR #141 

This PR is the first application of the config directory and it's purpose is externalizing of the configuration of APT into config/apt/.
Previously this was hardcoded in the installation script, but now you can adjust it in 'any' way you like.
The sources.list file is required, but can be adjusted to include for example 'contrib' and 'non-free'.
Other files ending in .list will be added to /etc/apt/sources.list.d/ and included in this PR is the raspberrypi.org list, which can be deleted if you don't want that :wink:
You can also included apt preferences file and those files need to end with .pref and will be added to /etc/apt/preferences.d/. Included in this PR is the preference to install vcgenmod and friends from raspbian and not raspberrypi.org, which was previously hardcoded in the installation script.
Both .list and .pref files have a special 'variable' named __RELEASE__ which will be replaced at installation time with the release config value.
And then there's the option to include .key files in the directory which allows you to add extra repositories key files to APT so that they are trusted.

This would close issue #98 
With custom repos, which is what this PR supports, people can use all kinds of release names and thus I didn't (want to) assume they would be `wheezy` or `jessie`.
Consequently I do think the current implementation is the right one.

I do feel the whole section is quite bulky, but haven't been able to come up with some kind of function to replace it (without making the function bulky).