Code: extract `#max_lineno_width` from `#to_s`

"Code" means `Pry::Code`.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Code::LOC: tuple should be "reader"

There is no need to expose the "writer" method.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Code::LOC: add #== and use it in Code#==

And fix a typo in comments.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Create Pry::Code::EXTENSIONS

There is no need to create the hash of supported languages all the time
as the method gets called.

As always, fix some stylistics und stuff :-)

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Code#to_s: standardise method chain

Make it as in `Code#raw` (they both do similar things).

And fix typos, typos, typos.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Use `block` instead of `blk` across-the-board

Everywhere else in the code it's the very `block`.

Rename `Code#get_abs_path` to `#abs_path`.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Code#to_s: don't loop thrice

One loop is enough to complete the task.

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>
Code: simplify `.from_file` class method

1. Use a temporary variable to hold code;
2. Instantiate `Pry::Code` only in one place;
3. Refactor reading from a file (a credit flies to John Mair).

Signed-off-by: Kyrylo Silin <kyrylosilin@gmail.com>