Migrations: Implement the PowerShell commands more

Notable changes:
- :sparkles: Tab expansion enabled for context and migartion name arguments (in addition to project names)
- Contexts can be resolved by simple type name
- `Use-EFContext` renamed to `Use-DbContext`
- `Update-Database -Script` functionality moved into new `Script-Migration` command

(Part of #207)
Not a fan of having opening curlies on the same line. Is this a PowerShell convention, or personal choice? If the former, then fine. If the latter, then still okay, but just saying I'm not a fan. :)