Refactored Navigation #59

Here's my initial proposal, see if this could be improved further.
Hm... in that case we can add setContainer (or setNavigationContainer) method to Item... and when item is added to container - this method is called... and method getContainer will help to get some parameters of navigation... in case when container is empty - class will be determined without it's options... how about that?