Nimisha/studio reorder and hide tabs

Support for reordering built-in-tabs in addition to static tabs.
Support for hiding the wiki tab.

tabs.cofee:
- Added toggleVisibilityOfTab method in tabs.coffee

xmodule/tabs.py:
- Added following class attribute on tabs (using class attributes in lieu of introducing is_instance calls):
   - is_movable
   - is_collection
- Enabled the is_hideable attribute on the wiki tab
- Added is_hidden attribute on instance objects
- Persistence of is_hidden attribute (serializing and deserializing)
    - absence of is_hidden attribute means the tab is visible
    - if is_hidden is false, attribute is not serialized
- Renamed "books" to "items" to generalize "textbooks" as "collections"
- New implementation of iterate_displayable (currently only used by cms) that doesn't enumerate through all collection (textbook) items.  Eventually, similar logic would be used by lms.

edit-tabs.html:
- Single for loop for both static and built-in tabs
- New css class called course_tab that is used by both static and built-in tabs
- Special case for collections (Textbooks)

test files:
- update pages.feature, pages.py and the two test_tabs.py files (added several unit tests for better coverage)
- other test files were changed because of API changes to make pylint happy, and introduced a new common helper method.

Doc: @mhoeber 
UX: @talbs 
Thanks for reviewing @andy-armstrong @cahrens