Many Validate#notNull checks added to Hologram Implementations along with a few other improvements

**The Issue**
This PR is here after askign DSH105 how I could help the API and this was one thing suggested so here it is.

**Justification for this PR:**
This PR will help programmers when debugging there code as the new notNull checks will speed up developers determining reasons for NullPointerExceptions.

**PR Breakdown**
Basically all that is added is Validate.notNull checks on the classes that implement Hologram. Some other code was also added to check to make sure that any index was not < 0.