Allow user to add router, conversation and channel components

@hodgestar Angular apps normally look like this, but I do agree the directive can benefit from some refactoring.