Model's can specify their own template lookup - DO NOT MERGE

# WIP do not merge

This introduces a new backend that allows Model's to supply their own method for template lookup using Arm Layout. It works like South's `south_field_triple()`; if the model has a `get_layout_template_name()` the backend uses that to build the list of template paths.

Backward compatibility is maintained.

Some mixins have been provided to easily add common use cases to Models.

### Why?
We've been using more specific, detailed templates for various models for a while now. It's time to make an official lookup process.
* templates for **Wells** and **WellTypes** using the WellType's `slug`
* templates for **Sections** by their `full_slug`
* we have an AWS Search wrapper model with its own (very simple) template structure
* [App.Embeds](https://github.com/armstrong/armstrong.apps.embeds) will use an **oEmbed type** template structure (photos render differently than links for example)

## TODO
- [ ] review; this is very WIP
- [ ] tests