Moved NavigationDrawer base classes to their own package

I restructured this in order to hide all of the NavigationDrawer implementation details in its own package. I also made the `NavigationDrawerFragement` abstract so it can only be used by extending it and implementing the `getMenu()` method. Finally, I updated the xml files to use the new implementation class.

This also contains the updates from #15 but does not depend on them.