JS: let tab navigation use the standard ID's/classnames for inlines.

Let the placeholders appear as standard inlines, removes the magic.
Also allows generic code (e.g. jquery.django-inlines.js) to use it.
Code cleanup in cp_tabs.js, clarify inline rewriting code.

Can't use jquery.django-inlines.js after all, because the placeholder
inlines are constantly recycled.
Code cleanup, make the code and used objects easier to understand
Split extensions.py to a separate package

This makes it easier to add additional fields,
e.g. form fields which are specifically designed for plugins.
Added model fields for plugin developers

This helps to keep a consistent interface for file/image (and maybe
later WYSIWYG) fields.