ついでに extractOptions

これもRailsでよくお世話になったメソッドなのでポート。世の中探せばあるのかもしれないけれど。こうやって実装していくと、javaScriptの言語仕様の奥深いところではまったりするのでためになってます。

      f = function(){
        return Crayon.extractOptions.apply(this, arguments);
      };
      var ret = f(1,2,3);
      // ret.args -> [1.2.3] 
      // ret.options -> null

      var ret = f({opt1: "a"});
      // ret.args -> [] 
      // ret.options -> {opt1: "a"}

      var ret = f(1,2,3, {opt1: "a"});
      // ret.args -> [1.2.3] 
      // ret.options -> {opt1: "a"}