Improve backend plugin ergonomics.

This adds support for omitting a backend entrypoint where
no backend plugin is provided and also improves import
errors by wrapping and giving the full module path that was
not found.

Test coverage is also added.

Testing Done:
$ PANTS_DEV=1 ./pants goal test tests/python/pants_test/base:all

Bugs closed: 666

Reviewed at https://rbcommons.com/s/twitter/r/666/