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)
In some places it's actually necessary because of the way the language gets parsed. They may have a line continuation operator like in VB. I'm not a fan either, but I didn't want to fight the parser. Like I say, PowerShell is a psychotic language...