Update label() to use the new widgets.

Replace Helper::domId() with an implementation on FormHelper. This new
method simplifies the ID generation and removes the stateful entity()
feature that has been problematic in the past. Now there is no shared
state between method calls which will simplify the internals of helpers
quite a bit.
Remove type as a separarte option.

Some FormHelper tests want to make buttons with no type. Therefore, it
cannot be a required attribute.
Update button() to use new widget classes.
Update tests for FormHelper::postButton()

Since this method just combines fixed methods it can continue to pass.
I've decided to remove random id attributes from the CSRF and
SecurityComponent fields. Because the ID values are random they are
impossible to use for scripting which is the main utility ID attributes
provide.
Re-enable tests for FormHelper::postLink()

This method also combines other existing methods and can be easily
re-enabled.
Remove bogus test.

This test does nothing useful anymore. Remove it.
Remove failing test.

Helper::domId() was removed, remove the test case.
Make FormHelper::domId() protected.

I can't think of a good reason for it to be public right now, so I'll
make it protected instead.
Merge pull request #2851 from markstory/3.0-label

3.0 - Update label() button(), postLink() and postButton() for new widgets.