define custom inspects for both `Source` and `Template`

This is just to ease when debugging errors and inspecting values.
There is no need to show the raw instance variables and internal
tracking details.  They are really noisy and don't help much.  Plus
with the template being an anonymous class its inspect was even more
confusing.

For the source object, this switches to only showing the root when
inspecting the source.  This is really all that matters in the
source's state.

For the template object, this switches to displaying the template's
souce class/objid prefixed with `Template:` for the class info.
Each template is bound to it's source so this is a better option than
showing the anonymous class info.  This also just showsthe raw source
path string and what `__data__` would be as this is the only practical
state info on a template.

This is just a cleanup - no behavior changes.

@jcredding ready for review.  Here is what it looks like IRL:

```ruby
require 'nm/source'
=> true
s = Nm::Source.new('/')
=> #<Nm::Source:0x01078c8360 @root=#<Pathname:/>>
t = s.template_class.new(s)
=> #<Template:Nm::Source:0x01078c8360 @__source__.root="/" __data__=nil>
```