Any municipality may frame and adopt or amend a charter for its government and may, subject to the provisions of section 3 of this article, exercise thereunder all powers of local self-government.