Merge tag '0.4.0' into dev

v0.4.0 release
 * changing to use square-bracket (`[]`) notation **instead of** dot (`.`) notation
changing semver syntax, using ~ instead of ^ to get wider ranges
version bump + changelog update
Merge branch 'release/0.4.1'