[RFC] Metro TabItem/TabControl Patch #2

- Reworked CloseTabCommand Infrastructure.
    - CloseTabCommand is only called for MVVM Data Bound items.
    - Added a TabItemClosingEvent to determine whether the TabItem should be closed.
    - All Metro*TabControls inherit from BaseMetroTabControl to make adding extensions to all controls easier.
    - CloseTabButton is only visible when the tab is selected OR the mouse is hovering over the tabitem.
- Implemented TabStripPlacement (bare-bones) for the Metro*TabControls that did not have it. Fixes #527 
    - For non-MetroTabControls, see #528 by @snowdreamist

![tc_selected](https://f.cloud.github.com/assets/251501/627585/899e77ec-d041-11e2-9995-3d0927b68ee5.png)

Things that can be implemented/fixed:
- Prevention of TabControl's default tab unloading behavior.
    - Add a property for having the default behavior and the new, fixed behavior.