External scheduler

## 概要
各スケジューラごとにOACISで対応するのではなく、各ホスト上でxsubというコマンドを叩くようにして、xsubがスケジューラの違いを吸収する。

## Hostモデルの変更点
- scheduler_type として xsub というタイプを用意する。
- xsubの時には、template、host_parameter を編集不可に
  - templateはデフォルトのもので固定。
- hostが登録されたときにhost_parameterをSSH経由で取得し、それをhost_parameterとして保存する
  - xsub -t コマンドで必要なパラメータを取得する
    - ただし、omp_threads, mpi_procs は除く。これらには Run#omp_threads, Run#mpi_procs を入れる。
- template を renderするタイミングが異なる
  - 今まで: Runを作ったときにscriptを作る
  - xsub: xsubの引数としてデフォルトのscriptを渡す
    - runを作るときにscript previewは必要ないかもしれないが、とりあえず残す

## submit時の仕様変更
- job_script から cd work_base_dir/work_dir を除く。そのかわりschedulerにサブミットするときに cd  する。（またはtorqueの場合は-dオプションを渡す）
  - work_base_dir/work_dir に cd するのは remote_job_handler の責務
    - torque は -dオプションでwork_dirを指定する
    - pjsub は -d オプションが無いので、事前にcdする
  - work_dir はジョブの投入時に作られる。（ただしmanual_submissionの場合には作られないので、別途対応する必要あり）
    - cancelされたときは work_dir が削除されるようになっている
  - 後方互換性は維持される。
    - work_dirができる場所自体は変わっていないので、変更前に作ったジョブスクリプトも問題なくincludeできる。
- manual submissionの時は、work_dirを作る必要がある。
  - templateの中で今いるディレクトリの名前がRun_idと等しいかどうかで判定するようにした。
- scheduler_log は work_base_dir 以下に出すようにする
  - work_dir に入れておくと、tarで固められてしまうので、ジョブの統計情報がtarに含まれない。
  - work_base_dir/#{run_id}_log のディレクトリ以下に配置する
    - logのインクルード後は、このログディレクトリも削除する
  - ログのパスの指定は、torque,pjmの場合は -o,-e,-s,-iオプションで指定。xsubの場合は-lでログディレクトリを指定できる
- work_dir の削除はinclude後にも行う
  - 基本的にはジョブスクリプトで削除を行う。(rm -rf work_dir で）
    - ただしstagingの場合など、消せない場合もあるのでinclude後にもwork_dirがあれば削除する
  - work_dir が残っていてもジョブ失敗と見なさない
    - archiveがあれば取り込み、work_dirしかなければwork_dirの内容を取り込む。
- moutned_work_base_dir があるときにスケジューラのログが取れないバグを修正
  - 正常系なのに、エラーハンドリングのコード中に実装されていたのでリファクタリング
- xsub, xstat, xdelのコマンドを実行するときは bash -l 経由で実施する
  - bashrc でPATHなどの環境変数をセットするため
  - ユーザーは事前に、xsub,xstat,xdelがPATHにあるようにセットしておく必要がある。

# TODOs
- [X] PJMでのテスト
- [.] 京でのテスト
- [X] scheduler type からpjm, pjm_kを削除
  - 次のリリースで削除する予定
- [ ] ドキュメント
- [X] xsubのホストパラメータがホスト登録後に変更された場合にどう対応するか？
  - Hostを手動で保存し直して対応してもらう
- [X] xsubのパスをどのように検索するか？各ユーザーに事前にPATHに加えておいてもらう？
  - .bashrc でPATHに加えてもらう。すべてのコマンドは `bash -l` 経由で実行されるので、ユーザーはログインシェルがzshでもbashrcでパスを設定する必要がある。

typo
際→差異