Add NullContext class

This form context class is used as a fallback when the other types do
not match. It does almost nothing other than to fulfil the basic
interface.
Add isCreate() method to context classes.

FormHelper needs to be able to find out if the form should act as
a create or update operation. I feel this best fits into the context
classes.
Remove duplicate method.

This method also exists in the StringTemplateTrait.
Make StringTemplateTrait accept either a string or an array.

An array of templates or string filename should be accepted parameters.
This makes it easier for helpers including this trait to be more
flexible in how their configuration is provided.
Add primaryKey() to context classes.

Add a primaryKey method to the context classes. This will let FormHelper
get primaryKey data so that create/update forms can be detected properly
for a given bag of data.
Add interface class for form contexts.

Having an interface will make type checks simpler, and make it clear
to userland extensions what methods are required.
Fix isCreate()

It was backwards.
Merge pull request #2805 from markstory/3.0-context-improvements

3.0 context improvements