Feature.conditionalbuttons

Here is the proposed conditional buttons feature, with tests and docs. Please review.