Added [Maintenance] to always run migrations at specified stages

This is an implementation of suggestion #473.

**Example:**

    [Maintenance(MigrationStage.BeforeAll)]
    public class MigrationBeforeAll { ... }

**Notes:**

1. I am not sure about the naming, but I did not have any better ideas.

2. There are no tests. Sorry :(
I wanted to just modify a copy of Profile tests, but I haven't found Profile tests.
And I had no time to research the right way to test these.

3. Within a stage, migrations are ordered by the type name. It may make sense to add an Order property to attribute instead, but that would require either returning whole attribute from the convention, or another DTO.

4. Maintenance is only applied when migrating to latest version (mirroring Profiles).
Would applying it in all cases be a better option?