Dababase constranints for step table.

Strengthen validation of steps introducing more contraints.
Step creation with OPTIONAL number argument.

* Re-introduce now a possible step number to add a step in a prefixed position,
  which will automagically update all following steps.
* Add unittests for this new feature.
Add delete() function to step, caring the update of step numbers.

* Implement Step.delete()
* Add test_delete() to test_models.TestStep
* Fix abstract class "Model"'s delete method.