NPE on restart fix

This moves the Fragment injection from onAttach() to onActivityCreated(). This means that no injected field can be used before that state in the lifecycle. This is required as there is no guarantee that the Activity will have passed onCreate() when the Fragment's onAttach() is called - hence the module fields may be null.  Refer to this Dagger sample commit for further justification - square/dagger@9621542

Removed unnecessary retainInstanceState(true) calls in UI Fragments. There's better ways of retaining the state. 

Resolves #56