Abstract entity rendering with EntityEmbedDisplay plugin type.

I think this is how I intend to solve https://drupal.org/node/2273393. With an abstract EntityEmbedDisplay, I could add sub-classes for Entity Reference formatters, or other field formatters. This would allow users to create arbitrary ways to display embedded entities as well outside of just entity_view(), which will be very useful.

Tasks:
- [x] Convert to plugins
- [x] Figure out if derivative plugins can work for field formatter plugins - yes they work!
- [x] Integrate with PluginFormInterface
- [x] Ensure all new methods and classes are documented.
- [x] Updated docs about new data attributes.
Because eventually we should be able to replace setContextValue(), getContextValues(), and getContextValue() with ContextAwarePluginBase, but the D8 context system has bugs that prevents this from working.

All other methods are basically necessary to fulfill interfaces and not defined by any base classes.