Merge pull request #167 from IceDragon200/bin-overhaul

Refactoring
Started checking codebase using rubocop: fixed single quotes
Changed deprecated methods: File.exists? && Hash#has_key?
Added spaces inside { }

A little guilty of re-arranging url_generator though, too much indentation
was caused by using class << self, instead just wrap what you 'really' want
in class << self, in this case, param_name and generate_params are to be private
%r and %q changes

Use ( ) with %q literals and only if there are " or ' inside the string,
Use %r when dealing with more than 1 /, otherwise / / works just fine
Keep lines clean and short (under the 80 character limit)

Moved some embedded json stuff (Prmd#init > init_default.json and init_resource.json.erb)
Shortened some lines by using the &:symbol syntax
Renamed relevant templates with dual extensions (eg. .md.erb)

Since some templates are expected to produce some kind of result, such
as json or markdown (eg. .json.erb).
If the template only exists as a helper, and doesn't produce a specific
output, the filename can remain as its template extension (eg. .erb).
Combine, separate File specific operations from actual library operation

Prmd::Combiner is a stand alone object which can combine existing SchemaHash(s)
load_schema_file, avoid loading the file before verifying it can be loaded

tl;dr open first, check extension and then read
Removed useless commands/expand.rb

Who, what, where, when, how and why?
Prmd.init now uses Prmd::Generator for creating new Schemas
Prmd.render now uses Prmd::Renderer internally

Still feels a bit clunky though, too many hacks here and there
Prmd::Schema#convert_type_to_array should not modify hash in place
if not > unless
1.9 hash syntax for Symbols
Prmd::CLI, break parse_options off into make_parsers
Added Rake tasks combine, doc, and verify
Schema, snake_case variable names
Prmd::CLI, require what you use in the file

While it helps keep the repetition down by requiring files that require
the ones you use, its best to require what you actually use, in the case
the structure changes.
And this one slipped me...