Refactors the ranges types to accept start/end inclusive/exclusive optio...

Refers to issue #114.

Refactors the ranges types to accept an array of options that specifies:
* if "start" limit should be inclusive or exclusive
* if "end" limit should be inclusive or exclusive

Default limits are now inclusives.