Use fullCurrentPath() when relativizing includes, and make it throw if path is empty

This is just to consolidate our use of pathStack in one place.
Fix Tokens.Value.toString on unresolved values

It was throwing an exception trying to unwrap unresolved value
Throw exceptions when we need a reference to an array element

This arose in issue https://github.com/typesafehub/config/issues/160

There are two known cases: when we want to relativize references
in included files, and when we use `+=` while inside a list.
Both of those are currently impossible to handle without a way
to generate a reference to a list element.