Move requires to top of code.
Remove reduntant closing section.
Move ;; Code declaration and add file extenstion hook.
Use define-derived-mode to simplify code.
Add autoload cookie to powershell-mode.