added setters for #first and #last as well as reduced potential for error with isEmpty

I thought it wise to go ahead and add setters for the #first and #last methods because it helps optimize the experience of using them (and makes complete logical sense).

I also firmed up the check for #isEmpty because it's possible that the length could be set to something like "undefined". Why? I have no idea, but doing an === check completely eliminates the possibility for error.

I think this library is a great idea. I'd love to keep making contributions in the future!