Add erltrek_dock.erl

* Add dock/undock functions
Update erltrek_terminal.erl

* Add dock/undock related message processing
Update e.erl

* Add d() and u() for dock and undock
Update erltrek_dock.erl

* Fix typo from nofify -> notify
Update erltrek_event.erl

* Add dock and undock handling to enterprise_command/1
Update erltrek_event.erl

* Add dock and undock to commands/1
Update erltrek_dock.erl

* Add replenishing energy/sheild when docked in try_docking/1
Update erltrek_klingon.erl

* Add starbase protection to perform_attack/3
Update erltrek_move.erl

* Add prohibiting moving when docked to impulse/5
Update erltrek_terminal.erl

* Add {move,docked} and {hit, protected_by_starbase} to handle_event/2
Update src/erltrek_phaser.erl

* Add prohibiting firing when docked in fire_phaser/4
* Change message event to use {phaser, _} when unable to fire
Update erltrek_terminal.erl

* Change phaser-related events to use {phaser, _} in handle_event/2
Update erltrek_shell.erl

* Fix record type mismatch in #command.name, due to the following
  dialyzer output:

      erltrek_shell.erl:159: Record construction #command{name::string(),expand::boolean(),desc::nonempty_string(),help::nonempty_string(),dispatch::fun(([any()]) -> 'ok')} violates the declared type of field name::atom()

  In get_expand_fun/0, Commands#command.name is assigned by NameL, which is a list.

l Please enter the commit message for your changes. Lines starting